Java

[Java의 정석] 15-1. 입출력: 바이트 기반 스트림

noahkim_ 2023. 11. 29. 01:38

"Java의 정석" 책을 정리한 포스팅 입니다.

 

1. 자바에서의 입출력

입출력

  • 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것을 말합니다.

 

스트림

  • 자바에서 입출력을 수행할 때, 두 대상을 연결하고 데이터를 전송할 수 있는 객체를 말합니다.
  • 데이터를 운반하는데 사용되는 연결통로 역할을 합니다.

 

only 단방향 통신
  • 입력과 출력을 동시에 처리할 수 없습니다.
  • 각각 입력스트림과 출력스트림이 필요합니다.

 

FIFO 구조
  • 먼저 보낸 데이터를 먼저 받습니다.

 

2. 바이트기반 스트림

바이트 단위
  • 출력의 단위가 모두 1 byte 입니다.

 

구현체
  • ByteArray: 메모리
  • File: 파일
  • Piped: 프로세스
  • Audio: 오디오 장치

 

InputStream

read()
  • 데이터를 읽어옵니다.

 

구현체
  • ByteArrayInputStream: 데이터를 임시로 담아 변환하는 작업에 사용
  • FileInputStream : 파일에 입력하기 위해 사용
  • PipedInputStream: 두 스레드 간에 데이터를 연결된 파이프로 전달할 떄 사용
  • AudioInputStream: 오디오 데이터를 읽는데 사용

 

OutputStream

flush()
  • 스트림의 버퍼에 남아있는 내용을 출력소스에 기록

 

write()
  • 주어진 값을 출력소스에 씁니다.

 

구현체
  • ByteArrayOutputStream
  • FileOutputStream
  • PipedOutputStream
  • AudioOutputStream