기본 스트림과 보조 스트림

장치 연결 여부와 추가 기능을 구분하면 계층 소유권이 선명해진다.

FileOutputStream

파일 핸들을 직접 연다.

기본

BufferedOutputStream

바이트를 모아 호출을 줄인다.

보조

DataOutputStream

타입을 정해진 바이트로 쓴다.

보조

GZIPOutputStream

데이터를 압축 형식으로 바꾼다.

보조
닫기가장 바깥 계층 하나가 안쪽으로 close를 전파한다.

핵심: 출력 때 적용한 데코레이터를 입력에서는 역순 의미로 해제한다.