[JAVA] ByteStream : FilterInputStream / FilterOutputStream

2019. 8. 7. 10:13 JAVA/Java IO

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 [개발이 하고 싶어요]