바이트 기반의 보조 스트림의 조상: Filter 입출력 스트림
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의 자손만 해당