"Java의 정석" 책을 정리한 포스팅 입니다.
1. 자바에서의 입출력
입출력
- 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것을 말합니다.
스트림
- 자바에서 입출력을 수행할 때, 두 대상을 연결하고 데이터를 전송할 수 있는 객체를 말합니다.
- 데이터를 운반하는데 사용되는 연결통로 역할을 합니다.
only 단방향 통신
- 입력과 출력을 동시에 처리할 수 없습니다.
- 각각 입력스트림과 출력스트림이 필요합니다.
FIFO 구조
- 먼저 보낸 데이터를 먼저 받습니다.
2. 바이트기반 스트림
바이트 단위
- 출력의 단위가 모두 1 byte 입니다.
구현체
- ByteArray: 메모리
- File: 파일
- Piped: 프로세스
- Audio: 오디오 장치
InputStream
read()
- 데이터를 읽어옵니다.
구현체
- ByteArrayInputStream: 데이터를 임시로 담아 변환하는 작업에 사용
- FileInputStream : 파일에 입력하기 위해 사용
- PipedInputStream: 두 스레드 간에 데이터를 연결된 파이프로 전달할 떄 사용
- AudioInputStream: 오디오 데이터를 읽는데 사용
OutputStream
flush()
- 스트림의 버퍼에 남아있는 내용을 출력소스에 기록
write()
- 주어진 값을 출력소스에 씁니다.
구현체
- ByteArrayOutputStream
- FileOutputStream
- PipedOutputStream
- AudioOutputStream
'Java' 카테고리의 다른 글
[Java의 정석] 15-3. 입출력: 보조 스트림 (0) | 2023.11.29 |
---|---|
[Java의 정석] 15-2. 입출력: 문자 기반 스트림 (0) | 2023.11.29 |
[Java의 정석] 13-2. 스레드: 우선순위, 그룹, 데몬 스레드 (2) | 2023.11.27 |
[Java의 정석] 13-1. 스레드: 프로세스와 스레드 (0) | 2023.11.27 |
[Java] Stream (2) | 2023.10.22 |