FilterInputStream 소스

1252 단어 Inputstream
public class FilterInputStream extends InputStream {
	
	//       
	protected volatile InputStream in;

	protected FilterInputStream(InputStream in) {
		this.in = in;
	}

	public int read() throws IOException {
		return in.read();
	}
	
	public int read(byte b[]) throws IOException {
		return read(b, 0, b.length);
	}

	public int read(byte b[], int off, int len) throws IOException {
		return in.read(b, off, len);
	}
	
	public long skip(long n) throws IOException {
		return in.skip(n);
	}

	public int available() throws IOException {
		return in.available();
	}

	public void close() throws IOException {
		in.close();
	}

	public synchronized void mark(int readlimit) {
		in.mark(readlimit);
	}

	public synchronized void reset() throws IOException {
		in.reset();
	}

	public boolean markSupported() {
		return in.markSupported();
	}
}

이 클래스는 상당히 흥미롭다는 것을 알 수 있다. 그 구조 함수가 인풋 스트리밍 대상에 전달된 다음에 Filter Input 스트리밍 대상을 만들 때 여러 가지 방법을 사용하지만, 실제로는 원래 인풋 스트리밍 방법이었다.
근데 왜 이렇게 디자인했지?

좋은 웹페이지 즐겨찾기