자바/입출력 IO

바이트 기반의 보조 스트림의 조상: Filter 입출력 스트림

백_곰 2022. 4. 24. 19:25

1. FilterInputStream과 FilterOutputStream

- InputStream/OutputStream의 자손이면서 모든 보조 스트림의 조상이다.

 

- 아래는 필터 입출력 스트림의 생성자이다.

 

(1) Protected FilterInputStream(InputStream in)

 

(2) public FilterOutputStream(OutputStream out)

 

( 필터 입출력 스트림의 모든 메서드는 단순히 기반 스트림의 메서드를 그대로 호출할 뿐이다. )

( 즉, 그 자체로는 아무런 일도 하지 않음을 의미하기에, 상속을 통해 원하는 작업을 수행하도록 읽고

쓰는 오버라이딩해야 한다. )

 

( (1)과 같이 Protected이기 때문에, 상속을 받았을 때 FilterInputStream의 인스턴스를 생성할 수 없고,

아래와 같이 해야한다. )

 

public class FilterInputStream extends InputStream{

      protected volatile InputStream in;

      protected FilterInputStream(InputStream in){

                     this.in = in;

                     //protected 이므로 따로 InputStream을 생성해서 받아준다.

      }

}

 

- 필터 입출력 스트림의 자손들은 아래와 같다. 

(1) Buffered 입출력 스트림

 

(2) Data 입출력 스트림

 

(3) PushbackInputStream

: FilterInputStream의 자손만 해당

 

(4) PrintStream

: FilterOutputStream의 자손만 해당