JavaTM Platform
Standard Ed. 6

java.io
클래스 BufferedInputStream

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


public class BufferedInputStream
extends FilterInputStream

다른 입력 스트림에 기능, 특히 입력을 버퍼에 포함하는 기능과 mark 메소드와 reset 메소드를 지원하는 기능을 추가합니다. BufferedInputStream 가 작성되면(자), 내부 버퍼 배열이 작성됩니다. 스트림의 바이트가 읽힐까 스킵 되면(자), 포함되고 있는 입력 스트림로부터 필요에 따라서 한 번에 다수의 바이트가 내부 버퍼에 추가됩니다. mark 오퍼레이션은 입력 스트림의 특정 위치를 기억합니다. reset 오퍼레이션은, 포함되고 있는 입력 스트림로부터 새로운 바이트가 취득되기 전에, 마지막에 실행된 mark 오퍼레이션 이후에 읽힌 모든 바이트를 재독 보고 붐비어 합니다.

도입된 버젼:
JDK1. 0

필드의 개요
protected  byte[] buf
          데이터를 포함하는 내부 버퍼 배열입니다.
protected  int count
          버퍼중의 마지막 유효 바이트 인덱스보다 1 개 큰 수치를 가지는 인덱스입니다.
protected  int marklimit
          mark 메소드가 불려 가 한편, 후속의 reset 메소드가 실패하기 전 상태로 예측 가능한 최대수입니다.
protected  int markpos
          마지막에 mark 메소드가 불려 갔을 때의 pos 필드의 값입니다.
protected  int pos
          버퍼의 현재 위치입니다.
 
클래스 java.io. FilterInputStream 로부터 상속된 필드
in
 
생성자 의 개요
BufferedInputStream (InputStream  in)
          BufferedInputStream 를 작성해, 그 인수인 입력 스트림 in 를 나중에 사용할 수 있도록(듯이) 보존합니다.
BufferedInputStream (InputStream  in, int size)
          지정된 버퍼 사이즈를 가지는 BufferedInputStream 를 작성해, 그 인수인 입력 스트림 in 를 나중에 사용할 수 있도록(듯이) 보존합니다.
 
메소드의 개요
 int available ()
          이 입력 스트림의 메소드의 다음의 호출에 의해, 블록 하지 않고 이 입력 스트림로부터 읽어들일 수가 있는 (또는 스킵 할 수 있다) 추정 바이트수를 돌려줍니다.
 void close ()
          이 입력 스트림을 닫아, 그 스트림에 관련하는 모든 system resource를 해제합니다.
 void mark (int readlimit)
          InputStreammark 메소드의 범용 규약을 참조해 주세요.
 boolean markSupported ()
          입력 스트림이 markreset 메소드를 지원하고 있을지 어떨지를 판정합니다.
 int read ()
          InputStreamread 메소드의 범용 규약을 참조해 주세요.
 int read (byte[] b, int off, int len)
          이 바이트 입력 스트림로부터 바이트를 읽어내, 지정된 바이트 배열로 지정의 오프셋(offset)로부터 삽입합니다.
 void reset ()
          InputStreamreset 메소드의 범용 규약을 참조해 주세요.
 long skip (long n)
          InputStreamskip 메소드의 범용 규약을 참조해 주세요.
 
클래스 java.io. FilterInputStream 로부터 상속된 메소드
read
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

buf

protected volatile byte[] buf
데이터를 포함하는 내부 버퍼 배열입니다. 필요에 따라서, 다른 사이즈외의 배열로 옮겨놓을 수 있습니다.


count

protected int count
버퍼중의 마지막 유효 바이트 인덱스보다 1 개 큰 수치를 가지는 인덱스입니다. 이 값의 범위는, 항상 0 ~ buf.length 입니다. 요소 buf[0] ~ buf[count-1] 에는, 기본이 되는 입력 스트림로부터 취득되어 버퍼에 포함되고 있는 입력 데이터가 들어갑니다.


pos

protected int pos
버퍼의 현재 위치입니다. buf 배열의, 다음에 읽히는 문자 데이터의 인덱스입니다.  

이 값의 범위는, 항상 0 ~ count 입니다. 이 값이 count 보다 작은 경우, 입력되는 다음의 바이트는 buf[pos] 입니다. count 에 동일한 경우, 다음의 read 오퍼레이션 또는 skip 오퍼레이션은 포함되고 있는 입력 스트림로부터 이 이후의 바이트를 읽어들일 필요가 있습니다.

관련 항목:
buf

markpos

protected int markpos
마지막에 mark 메소드가 불려 갔을 때의 pos 필드의 값입니다.  

이 값의 범위는, 항상 -1 ~ pos 입니다. 입력 스트림에 마크 위치가 없는 경우, 이 필드는 -1 입니다. 입력 스트림에 마크 위치가 있는 경우,reset 오퍼레이션의 실행 후에 입력되는 최초의 바이트는 buf[markpos] 입니다. markpos-1 가 아닌 경우,buf[markpos] ~ buf[pos-1] 의 위치에 있는 모든 바이트는 버퍼 배열에 남아 있지 않으면 안됩니다 (다만,count,pos,markpos 의 값에 적절한 조정을 베풀면, 버퍼 배열내의 다른 위치로 이동할 수 있다). posmarkpos 의 차이가 marklimit 를 넘지 않는 한, 이러한 바이트는 파기되지 않습니다.

관련 항목:
mark(int) , pos

marklimit

protected int marklimit
mark 메소드가 불려 가 한편, 후속의 reset 메소드가 실패하기 전 상태로 예측 가능한 최대수입니다. posmarkpos 의 차이가 marklimit 를 넘으면(자),markpos-1 로 설정되어 마크는 파기됩니다.

관련 항목:
mark(int) , reset()
생성자 의 상세

BufferedInputStream

public BufferedInputStream(InputStream  in)
BufferedInputStream 를 작성해, 그 인수인 입력 스트림 in 를 나중에 사용할 수 있도록(듯이) 보존합니다. 내부 버퍼 배열이 작성되어buf 에 포함됩니다.

파라미터:
in - 기본이 되는 입력 스트림

BufferedInputStream

public BufferedInputStream(InputStream  in,
                           int size)
지정된 버퍼 사이즈를 가지는 BufferedInputStream 를 작성해, 그 인수인 입력 스트림 in 를 나중에 사용할 수 있도록(듯이) 보존합니다. 길이 size 의 내부 버퍼 배열이 작성되어buf 에 포함됩니다.

파라미터:
in - 기본이 되는 입력 스트림
size - 버퍼 사이즈
예외:
IllegalArgumentException - size 가 0 이하의 경우
메소드의 상세

read

public int read()
         throws IOException 
InputStreamread 메소드의 범용 규약을 참조해 주세요.

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

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException 
이 바이트 입력 스트림로부터 바이트를 읽어내, 지정된 바이트 배열로 지정의 오프셋(offset)로부터 삽입합니다.

이 메소드는,InputStream 클래스의 대응하는 read 메소드의 범용 규약을 구현합니다. 보다 편리하게, 이 메소드는 기본이 되는 스트림의 read 메소드를 반복해 호출해, 가능한 한 많은 바이트수를 읽어들이려고 합니다. 이 read 의 반복은, 이하의 조건의 1 개가 true 가 될 때까지 행해집니다.

기본이 되는 스트림의 최초의 read 가 파일의 마지막을 나타내는 -1 을 돌려주면(자), 이 메소드는 -1 을 돌려줍니다. 그렇지 않은 경우, 이 메소드는 실제로 읽힌 바이트수를 돌려줍니다.

이 클래스의 서브 클래스는, 같은 방법으로 가능한 한 많은 바이트수를 읽어들이는 것이 추천 됩니다. 다만, 이것은 필수가 아닙니다.

오버라이드(override):
클래스 FilterInputStream 내의 read
파라미터:
b - 전송처 버퍼
off - 바이트의 포함 개시 오프셋(offset)
len - 읽어들이는 바이트의 최대수
반환값:
읽힌 문자수. 스트림의 마지막에 이르렀을 경우는 -1
예외:
IOException - 이 입력 스트림이 close() 메소드의 호출에 의해 닫혀졌을 경우, 또는 입출력 에러가 발생했을 경우
관련 항목:
FilterInputStream.in

skip

public long skip(long n)
          throws IOException 
InputStreamskip 메소드의 범용 규약을 참조해 주세요.

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

available

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

이 메소드는, 버퍼안에 남아 있는 read 가능한 바이트의 총수 (count - pos)를 돌려주어,in . available() 호출의 결과를 돌려줍니다.

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

mark

public void mark(int readlimit)
InputStreammark 메소드의 범용 규약을 참조해 주세요.

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

reset

public void reset()
           throws IOException 
InputStreamreset 메소드의 범용 규약을 참조해 주세요.  

markpos-1 인 (마크가 설정되어 있지 않은지, 마크가 무효로 되고 있다) 경우,IOException 가 throw 됩니다. 그렇지 않은 경우,posmarkpos 에 일치하도록(듯이) 설정됩니다.

오버라이드(override):
클래스 FilterInputStream 내의 reset
예외:
IOException - 이 스트림에 마크가 뒤따르지 않은 경우, 마크가 무효인 경우, 스트림이 close() 메소드의 호출에 의해 닫혀졌을 경우, 또는 입출력 에러가 발생했을 경우
관련 항목:
mark(int)

markSupported

public boolean markSupported()
입력 스트림이 markreset 메소드를 지원하고 있을지 어떨지를 판정합니다. BufferedInputStreammarkSupported 메소드는 true 를 돌려줍니다.

오버라이드(override):
클래스 FilterInputStream 내의 markSupported
반환값:
이 스트림의 형태가 markreset 메소드를 지원하고 있을지 어떨지를 나타내는 boolean
관련 항목:
InputStream.mark(int) , InputStream.reset()

close

public void close()
           throws IOException 
이 입력 스트림을 닫아, 그 스트림에 관련하는 모든 system resource를 해제합니다. 스트림을 닫은 뒤에, 또한 read(), 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 도 참조해 주세요.