BufferedInputStream (Java Platform SE 6) - xrath.com 에서 번역됨

개요 | 패키지 | 클래스 | 사용 | 계층 트리 | 비추천 API | 색인 | 헬프

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)` `InputStream` 의 `mark` 메소드의 범용 규약을 참조해 주세요.
`boolean` | `markSupported ()` 입력 스트림이 `mark` 와 `reset` 메소드를 지원하고 있을지 어떨지를 판정합니다.
`int` | `read ()` `InputStream` 의 `read` 메소드의 범용 규약을 참조해 주세요.
`int` | `read (byte[] b, int off, int len)` 이 바이트 입력 스트림로부터 바이트를 읽어내, 지정된 바이트 배열로 지정의 오프셋(offset)로부터 삽입합니다.
`void` | `reset ()` `InputStream` 의 `reset` 메소드의 범용 규약을 참조해 주세요.
`long` | `skip (long n)` `InputStream` 의 `skip` 메소드의 범용 규약을 참조해 주세요.

클래스 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` 의 값에 적절한 조정을 베풀면, 버퍼 배열내의 다른 위치로 이동할 수 있다). `pos` 와 `markpos` 의 차이가 `marklimit` 를 넘지 않는 한, 이러한 바이트는 파기되지 않습니다.

  관련 항목:
    `mark(int)` , `pos`

### marklimit

    protected int marklimit

  `mark` 메소드가 불려 가 한편, 후속의 `reset` 메소드가 실패하기 전 상태로 예측 가능한 최대수입니다. `pos` 와 `markpos` 의 차이가 `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

  `InputStream` 의 `read` 메소드의 범용 규약을 참조해 주세요.

  오버라이드(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` 을 돌려주었다
  - 기본이 되는 스트림의 `available` 메소드가, 그 이상의 입력 요구가 블록 되는 것을 나타내는 제로를 돌려주었다
  기본이 되는 스트림의 최초의 `read` 가 파일의 마지막을 나타내는 `-1` 을 돌려주면(자), 이 메소드는 `-1` 을 돌려줍니다. 그렇지 않은 경우, 이 메소드는 실제로 읽힌 바이트수를 돌려줍니다.

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

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

### skip

    public long skip(long n)
              throws IOException

  `InputStream` 의 `skip` 메소드의 범용 규약을 참조해 주세요.

  오버라이드(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)

  `InputStream` 의 `mark` 메소드의 범용 규약을 참조해 주세요.

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

### reset

    public void reset()
               throws IOException

  `InputStream` 의 `reset` 메소드의 범용 규약을 참조해 주세요.

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

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

### markSupported

    public boolean markSupported()

  입력 스트림이 `mark` 와 `reset` 메소드를 지원하고 있을지 어떨지를 판정합니다. `BufferedInputStream` 의 `markSupported` 메소드는 `true` 를 돌려줍니다.

  오버라이드(override):
    클래스 `FilterInputStream` 내의 `markSupported`
  반환값:
    이 스트림의 형태가 `mark` 와 `reset` 메소드를 지원하고 있을지 어떨지를 나타내는 `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`

개요 | 패키지 | 클래스 | 사용 | 계층 트리 | 비추천 API | 색인 | 헬프

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 도 참조해 주세요.