JavaTM Platform
Standard Ed. 6

java.io
클래스 FilterInputStream

java.lang.Object 
  상위를 확장 java.io.InputStream 
      상위를 확장 java.io.FilterInputStream
모든 구현된 인터페이스:
Closeable
직계의 기존의 서브 클래스:
BufferedInputStream , CheckedInputStream , CipherInputStream , DataInputStream , DeflaterInputStream , DigestInputStream , InflaterInputStream , LineNumberInputStream , ProgressMonitorInputStream , PushbackInputStream


public class FilterInputStream
extends InputStream

FilterInputStream 는, 데이터의 기본적인 소스로서 사용하기 위한 그 외의 입력 스트림을 포함합니다. 데이터를 도중에 변환하는 것이나, 추가 기능을 제공하는 일도 있습니다. FilterInputStream 클래스 그 자체가, 포함되고 있는 입력 스트림에 모든 요구를 건네주는 버젼에 의해,InputStream 의 모든 메소드를 단순하게 오버라이드(override) 합니다. FilterInputStream 의 서브 클래스는, 이러한 메소드의 일부를 한층 더 오버라이드(override) 할 수가 있어 추가의 메소드나 필드를 제공할 수도 있습니다.

도입된 버젼:
JDK1. 0

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

필드의 상세

in

protected volatile InputStream  in
필터 처리되는 입력 스트림입니다.

생성자 의 상세

FilterInputStream

protected FilterInputStream(InputStream  in)
나중에 사용할 수 있도록(듯이) 인수 inthis.in 필드에 할당하는 것에 의해,FilterInputStream 를 작성합니다.

파라미터:
in - 기본이 되는 입력 스트림. 기본이 되는 스트림없이 이 인스턴스가 작성 되려고 하고 있는 경우는 null
메소드의 상세

read

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

이 메소드는 단순하게 in.read() 를 실행해, 그 결과를 돌려줍니다.

정의:
클래스 InputStream 내의 read
반환값:
데이터의 다음의 바이트. 스트림의 마지막에 이르렀을 경우는 -1
예외:
IOException - 입출력 에러가 발생했을 경우
관련 항목:
in

read

public int read(byte[] b)
         throws IOException 
최대 byte.length 바이트까지의 데이터를, 이 입력 스트림로부터 바이트 배열에 읽어들입니다. 이 메소드는, 입력의 일부를 이용할 수 있게 될 때까지 블록 합니다.  

이 메소드는 단순하게 read(b, 0, b.length) 의 호출을 실행해, 그 결과를 돌려줍니다. 대신에 in.read(b) 가 실행되지 않게 해 주세요. FilterInputStream 의 특정의 서브 클래스는, 실제로 사용되고 있는 구현 방법으로 의존합니다.

오버라이드(override):
클래스 InputStream 내의 read
파라미터:
b - 데이터의 read처의 버퍼
반환값:
버퍼에 읽힌 바이트의 합계수. 스트림의 마지막에 이르렀기 때문에 그 이상 데이터가 없는 경우는 -1
예외:
IOException - 입출력 에러가 발생했을 경우
관련 항목:
read(byte[], int, int)

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException 
최대 len 바이트까지의 데이터를, 이 입력 스트림로부터 바이트 배열에 읽어들입니다. len 가 0 이 아닌 경우, 이 메소드는 입력의 일부를 이용할 수 있게 될 때까지 블록 합니다. 그렇지 않은 경우, 바이트는 읽히지 않고,0 이 돌려주어집니다.  

이 메소드는 단순하게 in.read(b, off, len) 를 실행해, 그 결과를 돌려줍니다.

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

skip

public long skip(long n)
          throws IOException 
이 입력 스트림로부터 n 바이트분을 스킵 및 파기합니다. 다양한 이유로부터,skip 메소드는 지정보다 적은 바이트수 밖에 스킵 하지 않는 것이 있습니다. 0 의 경우도 있습니다. 이 스킵은 복수의 조건에 기인할 가능성이 있습니다만, 생각되는 유일한 경우는,n 바이트가 스킵 되기 전에 파일의 마지막에 이르렀을 경우입니다. 스킵 된 실제의 바이트수가 돌려주어집니다. n 가 부의 경우, 바이트는 스킵 되지 않습니다.

이 클래스의 skip 메소드는 바이트 배열을 작성해,n 바이트가 읽힐 때까지, 또는 스트림의 마지막에 이를 때까지 반복 그 중에 읽어들입니다. 서브 클래스에서 이 메소드를 구현하는 경우는, 보다 효율적으로 구현해 주세요. 예를 들어, 구현은 시크의 기능에 의존할 가능성이 있습니다.  

이 메소드는 단순하게 in.skip(n) 를 실행합니다.

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

available

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

이 메소드가 돌려주는 것은 in . available()의 결과입니다.

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

close

public void close()
           throws IOException 
이 입력 스트림을 닫아, 그 스트림에 관련하는 모든 system resource를 해제합니다. 이 메소드는 단순하게 in.close() 를 실행합니다.

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

mark

public void mark(int readlimit)
이 입력 스트림의 현재 위치에 마크를 설정합니다. 이것에 이어 reset 메소드를 호출하면(자), 마지막에 마크가 설정된 위치에 스트림을 재설정하기 위해(때문에), 다음번의 read 조작에서는 같은 바이트로부터 읽어들이게 됩니다.  

인수 readlimit 는 이 입력 스트림에 대해서, 마크 위치가 무효가 되기 전에 이 인수가 지정하는 바이트수를 읽어들이도록(듯이) 지시합니다.  

이 메소드는 단순하게 in.mark(readlimit) 를 실행합니다.

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

reset

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

이 메소드는 단순하게 in.reset() 를 실행합니다.  

스트림의 마크는, 스트림에 무엇이 포함되어 있는지를 체크하기 위해서, 데이터를 약간 예측할 필요가 있는 경우에 사용됩니다. 이것을 가장 용이하게 실행하는 방법은, 일반적인 퍼서를 호출하는 것입니다. 스트림을 퍼서로 취급할 수 있는 타입이면, 이것으로 잘 되어갑니다. 스트림이 이러한 타입이 아닌 경우는, 퍼서는 실패한 시점에서 예외를 발생시킵니다. readlimit 바이트의 범위내에서 이것이 발생했을 경우는, 외부의 코드로 스트림을 리셋 해, 다른 퍼서를 호출할 수가 있습니다.

오버라이드(override):
클래스 InputStream 내의 reset
예외:
IOException - 스트림에 마크가 설정되어 있지 않았던 경우, 또는 마크가 무효가 되어 있었을 경우
관련 항목:
in , mark(int)

markSupported

public boolean markSupported()
입력 스트림이 markreset 메소드를 지원하고 있을지 어떨지를 판정합니다. 이 메소드는 단순하게 in.markSupported() 를 실행합니다.

오버라이드(override):
클래스 InputStream 내의 markSupported
반환값:
이 스트림 타입이 markreset 메소드를 지원하는 경우는 true, 그렇지 않은 경우는 false
관련 항목:
in , InputStream.mark(int) , InputStream.reset()

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