[JAVA] ByteStream : FilterInputStream / FilterOutputStream
ByteStream : FilterInputStream / FilterOutputStream
FilterStream은 데이터를 모아서 어떤 형으로 변환하기 위한 기능을 제공한다.
기본적인 InputStream과 OutputStream 에서 부족한 기능들을 보완하기 위해서 기본 Stream에 필터를 적용하여 입/출력시에 새로운 기능을 제공한다.
FilterInputStream 과 FilterOutputStream 은 InputStream과 OutputStream을 상속한 클래스이며, FilterStream의 최상위 클래스로 기본적인 메소드를 그대로 사용할 수 있고, 필요한 형태로 변환하기 위한 필터를 추가할 수 있다.
FilterInputStream / FilterOutputStream와 그 하위 클래스는 생성할 때 다른 Stream 객체를 생성인자로 받는다.
따라서 기본 Stream에 특정 기능을 가진 FilterStream(BufferedStream/DataStream 등)을 연결하면 원하는 동작을 지원 가능하다.
FilterInputStream / FilterOutputStream 은 생성자가 protected로 선언되어 있어 직접 사용하지 못하고 대신 서브 클래스를 생성한다.
* FilterInputStream / FilterOutputStream 의 생성자
FilterInputStrema의 생성자 | 설명 |
FilterInputStream(InputStream in) | - InputStream을 생성인자로 받아 특정 기능을 수행하는 FilterInputStream 객체를 생성한다. |
FilterOutputStream(OutputStream out) | - OutputStream을 생성인자로 받아 특정 기능을 수행하는 FilterOutputStream 객체를 생성한다. |
- FilterInputStream 과 FilterOutputStream의 메소드는 InputStream과 OutputStream의 기본 메소드를 상속받아 그대로 사용할 수 있다.
- InputStream과 OutputStream의 기본 메소드는 아래 포스팅을 참고하자
[JAVA] ByteStream : InputStream / OutputStream
FilterStream 을 상속한 BufferedStream / DataStream 같은 클래스들을 활용하여 Byte 단위 입/출력 스트림을 다양하게 활용할 수 있다.
JAVA API DOC : FilterInputStream
JAVA API DOC : FilterOutputStream
출처: https://hyeonstorage.tistory.com/237?category=578560 [개발이 하고 싶어요]
'JAVA > Java IO' 카테고리의 다른 글
[JAVA] 문자 Stream : InputStreamReader / OutputStreamWriter (0) | 2019.08.07 |
---|---|
[JAVA] 문자 Stream : Reader / Writer (0) | 2019.08.07 |
[JAVA] ByteStream : DataInputStream / DataOutputStream (0) | 2019.08.07 |
[JAVA] ByteStream : BufferedInputStream / BufferedOutputStream (파일 복사 예제) (0) | 2019.08.07 |
[JAVA] ByteStream : FileInputStream / FileOutputStream (0) | 2019.08.06 |
[JAVA] System 클래스(표준 입출력) : System.in, System.out, System.err (0) | 2019.08.06 |
[JAVA] ByteStream : InputStream / OutputStream (0) | 2019.08.06 |
[JAVA] File 클래스 정리 (파일정보, 파일목록, 하드디스크 정보 출력) (0) | 2019.08.06 |