JavaTM Platform
Standard Ed. 6

java.io
클래스 PushbackInputStream

java.lang.Object 
  상위를 확장 java.io.InputStream 
      상위를 확장 java.io.FilterInputStream 
          상위를 확장 java.io.PushbackInputStream
모든 구현된 인터페이스:
Closeable


public class PushbackInputStream
extends FilterInputStream

PushbackInputStream 는, 다른 입력 스트림에 기능을 추가합니다. 구체적으로는, 1 바이트를 「push back(되밀치는)」또는 「안리드」하는 기능을 추가합니다. 이것은, 특정의 바이트치로 단락지어진 부정수의 데이터 바이트를 코드 fragment로 읽어들이면(자) 형편상 좋은 상황으로 도움이 됩니다. 끝 바이트를 읽어들이면(자), 코드 fragment는 그것을 「안리드」할 수 있으므로, 입력 스트림의 다음의 read 조작에서는, push back(되밀치는) 된 그 바이트를 재차 읽어들이게 됩니다. 예를 들어, 식별자를 구성해 있는 문자를 나타내는 일련의 바이트는, 연산자 문자를 나타내는 바이트로 끝나는 일이 있습니다. 이 경우, 식별자를 1 개만 읽어들이는 작업을 가지는 메소드는, 연산자를 검출할 때까지 read를 실행해, 재차 read를 실시하기 위해서(때문에) 연산자를 push back(되밀치는) 할 수가 있습니다.

도입된 버젼:
JDK1. 0

필드의 개요
protected  byte[] buf
          push back(되밀치는) 버퍼입니다.
protected  int pos
          push back(되밀치는) 버퍼내의 다음의 바이트의 read 위치입니다.
 
클래스 java.io. FilterInputStream 로부터 상속된 필드
in
 
생성자 의 개요
PushbackInputStream (InputStream  in)
          PushbackInputStream 를 작성해, 그 인수인 입력 스트림 in 를 나중에 사용할 수 있도록(듯이) 보존합니다.
PushbackInputStream (InputStream  in, int size)
          지정된 size 의 부시 백 버퍼를 가지는 PushbackInputStream 를 작성해, 그 인수인 입력 스트림 in 를 나중에 사용할 수 있도록(듯이) 보존합니다.
 
메소드의 개요
 int available ()
          이 입력 스트림의 메소드의 다음의 호출에 의해, 블록 하지 않고 이 입력 스트림로부터 읽어들일 수가 있는 (또는 스킵 할 수 있다) 추정 바이트수를 돌려줍니다.
 void close ()
          이 입력 스트림을 닫아, 그 스트림에 관련하는 모든 system resource를 해제합니다.
 void mark (int readlimit)
          이 입력 스트림의 현재 위치에 마크를 설정합니다.
 boolean markSupported ()
          이 입력 스트림이,mark 메소드와 reset 메소드를 지원하고 있을지 어떨지를 판정합니다.
 int read ()
          이 입력 스트림로부터 데이터의 다음의 바이트를 읽어들입니다.
 int read (byte[] b, int off, int len)
          최대 len 바이트까지의 데이터를, 이 입력 스트림로부터 바이트 배열에 읽어들입니다.
 void reset ()
          이 스트림의 위치를, 입력 스트림로 마지막에 mark 메소드가 불려 갔을 때의 마크 위치에 재설정합니다.
 long skip (long n)
          이 입력 스트림로부터 n 바이트분을 스킵 및 파기합니다.
 void unread (byte[] b)
          push back(되밀치는) 버퍼의 선두에 바이트 배열을 카피하는 것에 의해, 바이트 배열을 push back(되밀치는) 합니다.
 void unread (byte[] b, int off, int len)
          push back(되밀치는) 버퍼의 선두에 바이트 배열의 일부를 카피하는 것에 의해, 그러한 바이트를 push back(되밀치는) 합니다.
 void unread (int b)
          push back(되밀치는) 버퍼의 선두에 1 바이트를 카피하는 것에 의해, 그 바이트를 push back(되밀치는) 합니다.
 
클래스 java.io. FilterInputStream 로부터 상속된 메소드
read
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

buf

protected byte[] buf
push back(되밀치는) 버퍼입니다.

도입된 버젼:
JDK1. 1

pos

protected int pos
push back(되밀치는) 버퍼내의 다음의 바이트의 read 위치입니다. 버퍼가 빈 상태(empty)의 경우,posbuf.length 에 일치해, 버퍼가 가득한 경우,pos 는 제로에 일치합니다.

도입된 버젼:
JDK1. 1
생성자 의 상세

PushbackInputStream

public PushbackInputStream(InputStream  in,
                           int size)
지정된 size 의 부시 백 버퍼를 가지는 PushbackInputStream 를 작성해, 그 인수인 입력 스트림 in 를 나중에 사용할 수 있도록(듯이) 보존합니다. 초기 상태에서는, push back(되밀치는) 된 바이트는 없습니다. pushBack 필드는 -1 에 초기화되고 있습니다.

파라미터:
in - 바이트의 read원의 입력 스트림
size - push back(되밀치는) 버퍼의 사이즈
예외:
IllegalArgumentException - 사이즈가 0 이하의 경우
도입된 버젼:
JDK1. 1

PushbackInputStream

public PushbackInputStream(InputStream  in)
PushbackInputStream 를 작성해, 그 인수인 입력 스트림 in 를 나중에 사용할 수 있도록(듯이) 보존합니다. 초기 상태에서는, push back(되밀치는) 된 바이트는 없습니다. pushBack 필드는 -1 에 초기화되고 있습니다.

파라미터:
in - 바이트의 read원의 입력 스트림
메소드의 상세

read

public int read()
         throws IOException 
이 입력 스트림로부터 데이터의 다음의 바이트를 읽어들입니다. 값의 바이트는,0 ~ 255 의 범위의 int 로서 돌려주어집니다. 스트림의 마지막에 이르렀기 때문에 읽어들이는 바이트가 없는 경우는, 값 -1 이 돌려주어집니다. 입력 데이터를 읽어들일 수 있게 되는지, 파일의 마지막이 검출되는지, 또는 예외가 발생할 때까지, 이 메소드는 블록 됩니다.

이 메소드는, 마지막에 push back(되밀치는) 된 바이트가 있는 경우에는 그것을 돌려줍니다. 그것이 없는 경우, 그 기본이 되는 입력 스트림의 read 메소드를 호출해 그 반환값을 돌려줍니다.

오버라이드(override):
클래스 FilterInputStream 내의 read
반환값:
데이터의 다음의 바이트. 스트림의 마지막에 이르렀을 경우는 -1
예외:
IOException - 이 입력 스트림이 close() 메소드의 호출에 의해 닫혀졌을 경우, 또는 입출력 에러가 발생했을 경우
관련 항목:
InputStream.read()

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException 
최대 len 바이트까지의 데이터를, 이 입력 스트림로부터 바이트 배열에 읽어들입니다. 이 메소드는, push back(되밀치는) 된 바이트가 있으면 그것들을 최초로 읽어들입니다. 다음에, 읽힌 바이트가 len 바이트보다 적은 경우는, 기본이 되는 입력 스트림로부터 읽어들입니다. len 가 0 이 아닌 경우, 이 메소드는 입력의 적어도 1 바이트를 이용할 수 있게 될 때까지 블록 합니다. 그렇지 않은 경우, 바이트는 읽히지 않고,0 이 돌려주어집니다.

오버라이드(override):
클래스 FilterInputStream 내의 read
파라미터:
b - 데이터의 read처의 버퍼
off - 전송처의 배열 b 내에서의 개시 오프셋(offset)
len - 읽히는 최대 바이트수
반환값:
버퍼에 읽힌 바이트의 합계수. 스트림의 마지막에 이르렀기 때문에 그 이상 데이터가 없는 경우는 -1
예외:
NullPointerException - bnull 의 경우
IndexOutOfBoundsException - off 가 부의 경우,len 가 부의 경우, 또는 lenb.length - off 보다 큰 경우
IOException - 이 입력 스트림이 close() 메소드의 호출에 의해 닫혀졌을 경우, 또는 입출력 에러가 발생했을 경우
관련 항목:
InputStream.read(byte[], int, int)

unread

public void unread(int b)
            throws IOException 
push back(되밀치는) 버퍼의 선두에 1 바이트를 카피하는 것에 의해, 그 바이트를 push back(되밀치는) 합니다. 이 메소드가 복귀하면(자), 다음에 읽히는 바이트는 값 (byte) b 를 가집니다.

파라미터:
b - push back(되밀치는) 되는 하위의 바이트를 가지는 int
예외:
IOException - 바이트에 대해서, push back(되밀치는) 버퍼에 충분한 스페이스가 없는 경우, 또는 이 입력 스트림이 close() 메소드의 호출에 의해 닫혀졌을 경우

unread

public void unread(byte[] b,
                   int off,
                   int len)
            throws IOException 
push back(되밀치는) 버퍼의 선두에 바이트 배열의 일부를 카피하는 것에 의해, 그러한 바이트를 push back(되밀치는) 합니다. 이 메소드가 복귀하면(자), 다음에 읽히는 바이트는 값 b[off] 를 가져, 그 다음의 바이트는 값 b[off+1] 를 가집니다. 그 이후도 이와 같이 계속됩니다.

파라미터:
b - push back(되밀치는) 하는 바이트의 배열
off - 데이터의 개시 오프셋(offset)
len - push back(되밀치는) 하는 바이트수
예외:
IOException - 지정된 바이트수에 대해서, push back(되밀치는) 버퍼에 충분한 스페이스가 없는 경우, 또는 이 입력 스트림이 close() 메소드의 호출에 의해 닫혀졌을 경우
도입된 버젼:
JDK1. 1

unread

public void unread(byte[] b)
            throws IOException 
push back(되밀치는) 버퍼의 선두에 바이트 배열을 카피하는 것에 의해, 바이트 배열을 push back(되밀치는) 합니다. 이 메소드가 복귀하면(자), 다음에 읽히는 바이트는 값 b[0] 을 가져, 그 다음의 바이트는 값 b[1] 을 가집니다. 그 이후도 이와 같이 계속됩니다.

파라미터:
b - push back(되밀치는) 하는 바이트의 배열
예외:
IOException - 지정된 바이트수에 대해서, push back(되밀치는) 버퍼에 충분한 스페이스가 없는 경우, 또는 이 입력 스트림이 close() 메소드의 호출에 의해 닫혀졌을 경우
도입된 버젼:
JDK1. 1

available

public int available()
              throws IOException 
이 입력 스트림의 메소드의 다음의 호출에 의해, 블록 하지 않고 이 입력 스트림로부터 읽어들일 수가 있는 (또는 스킵 할 수 있다) 추정 바이트수를 돌려줍니다. 다음의 호출은, 같은 thread의 경우도 다른 thread의 경우도 있습니다. 이러한 다수의 바이트를 1 회에 읽어들이거나 스킵 하거나 하는 것으로 블록 할 것은 없습니다만, 읽어들이는 또는 스킵 하는 바이트수가 적게 되는 일이 있습니다.

이 메소드는, push back(되밀치는) 된 바이트수의 합계와 available 에 의해 반환된 값을 돌려줍니다.

오버라이드(override):
클래스 FilterInputStream 내의 available
반환값:
블록 하지 않고 입력 스트림로부터 읽어들일 수가 있는 (또는 스킵 할 수 있다) 바이트수
예외:
IOException - 이 입력 스트림이 close() 메소드의 호출에 의해 닫혀졌을 경우, 또는 입출력 에러가 발생했을 경우
관련 항목:
FilterInputStream.in , InputStream.available()

skip

public long skip(long n)
          throws IOException 
이 입력 스트림로부터 n 바이트분을 스킵 및 파기합니다. 다양한 이유로부터,skip 메소드는 지정보다 적은 바이트수 밖에 스킵 하지 않는 것이 있습니다. 0 의 경우도 있습니다. n 가 부의 경우, 바이트는 스킵 되지 않습니다.

PushbackInputStreamskip 메소드는, 부시 백 버퍼에 바이트가 존재하면, 최초로 그것들을 스킵 합니다. 한층 더 스킵 할 필요가 있는 바이트가 존재하면(자), 기본이 되는 입력 스트림의 skip 메소드를 호출합니다. 스킵 된 실제의 바이트수가 돌려주어집니다.

오버라이드(override):
클래스 FilterInputStream 내의 skip
파라미터:
n - 스킵 하는 바이트수
반환값:
스킵 된 실제의 바이트수
예외:
IOException - 스트림이 시크를 지원하고 있지 않는 경우, 스트림이 close() 메소드의 호출에 의해 닫혀졌을 경우, 또는 입출력 에러가 발생했을 경우
도입된 버젼:
1.2
관련 항목:
FilterInputStream.in , InputStream.skip(long n)

markSupported

public boolean markSupported()
이 입력 스트림이,mark 메소드와 reset 메소드를 지원하고 있을지 어떨지를 판정합니다. 이러한 메소드는 지원되고 있지 않습니다.

오버라이드(override):
클래스 FilterInputStream 내의 markSupported
반환값:
이 클래스는 mark 메소드와 reset 메소드를 지원하고 있지 않았기 때문에,false
관련 항목:
InputStream.mark(int) , InputStream.reset()

mark

public void mark(int readlimit)
이 입력 스트림의 현재 위치에 마크를 설정합니다.

PushbackInputStreammark 메소드는 아무것도 실시하지 않습니다.

오버라이드(override):
클래스 FilterInputStream 내의 mark
파라미터:
readlimit - 마크 위치가 무효가 되기 전에 읽어들여 가능한 최대한도의 바이트수
관련 항목:
InputStream.reset()

reset

public void reset()
           throws IOException 
이 스트림의 위치를, 입력 스트림로 마지막에 mark 메소드가 불려 갔을 때의 마크 위치에 재설정합니다.

PushbackInputStream 클래스의 reset 메소드는,IOException 를 throw 하는 이외 아무것도 실시하지 않습니다.

오버라이드(override):
클래스 FilterInputStream 내의 reset
예외:
IOException - 이 메소드가 불려 갔을 경우
관련 항목:
InputStream.mark(int) , IOException

close

public void close()
           throws IOException 
이 입력 스트림을 닫아, 그 스트림에 관련하는 모든 system resource를 해제합니다. 스트림이 닫혀진 뒤에 read(), unread(), available(), reset(), 또는 skip()를 호출하면(자), IOException 가 throw 됩니다. 벌써 닫혀지고 있는 스트림을 닫아도, 무슨 영향도 없습니다.

정의:
인터페이스 Closeable 내의 close
오버라이드(override):
클래스 FilterInputStream 내의 close
예외:
IOException - 입출력 에러가 발생했을 경우
관련 항목:
FilterInputStream.in

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.