FilterInputStream — 입력 스트림 필터의 슈퍼클래스

FilterInputStream — 입력 스트림 필터의 슈퍼클래스

FilterInputStream은 다른 입력 스트림을 감싸서 기본 데이터 소스로 사용하는 클래스로, 도중에 데이터를 변환하거나 추가 기능을 제공할 수 있어요. FilterInputStream 자체는 InputStream의 선택된 메서드들을 감싼 입력 스트림에 모든 요청을 전달하는 버전으로 재정의합니다. FilterInputStream의 하위 클래스는 선언되거나 상속된 어떤 메서드든 재정의할 수 있고, 추가 필드와 메서드를 제공할 수도 있어요.

출처: Java API Reference

본문

이 클래스는 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은 데이터를 가로채 변환하거나(암호화, 압축, 체크섬 등) 부가 기능을 더하는 스트림 데코레이터 패턴의 기반이에요.

더 알아보기 (Learn more)