FilterInputStream — 입력 스트림 필터의 슈퍼클래스
FilterInputStream — 입력 스트림 필터의 슈퍼클래스
FilterInputStream은 다른 입력 스트림을 감싸서 기본 데이터 소스로 사용하는 클래스로, 도중에 데이터를 변환하거나 추가 기능을 제공할 수 있어요. FilterInputStream 자체는 InputStream의 선택된 메서드들을 감싼 입력 스트림에 모든 요청을 전달하는 버전으로 재정의합니다. FilterInputStream의 하위 클래스는 선언되거나 상속된 어떤 메서드든 재정의할 수 있고, 추가 필드와 메서드를 제공할 수도 있어요.
본문
이 클래스는 java.io.InputStream을 상속하며 Closeable, AutoCloseable을 구현합니다. 하위 클래스로 BufferedInputStream, CheckedInputStream, CipherInputStream, DataInputStream, DeflaterInputStream, DigestInputStream, InflaterInputStream, LineNumberInputStream, ProgressMonitorInputStream, PushbackInputStream 등이 있어요.
필드
protected InputStream in— 필터링할 입력 스트림이에요.
생성자
protected FilterInputStream(InputStream in)— 인자in을 필드this.in에 할당해 나중에 사용하도록 기억함으로써FilterInputStream을 만들어요.
메서드
int available()— 다음 메서드 호출 시 블로킹 없이 읽을 수 있는 바이트 수의 추정치를 반환해요.void close()— 스트림을 닫고 관련 시스템 자원을 해제해요.void mark(int readlimit)— 입력 스트림의 현재 위치를 표시해요.boolean markSupported()— mark/reset 지원 여부를 테스트해요.int read()— 입력 스트림에서 다음 바이트를 읽어요.int read(byte[] b)— 최대b.length바이트를 바이트 배열로 읽어요.int read(byte[] b, int off, int len)— 최대len바이트를 바이트 배열로 읽어요.void reset()— 스트림을 마지막mark시점으로 되돌려요.long skip(long n)— 입력 스트림에서n바이트를 건너뛰고 폐기해요.
FilterInputStream은 데이터를 가로채 변환하거나(암호화, 압축, 체크섬 등) 부가 기능을 더하는 스트림 데코레이터 패턴의 기반이에요.