"Java의 정석" 책을 정리한 포스팅 입니다.
1. 자바에서의 입출력
입출력이란?
- 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것을 말합니다.
스트림
- 자바에서 입출력을 수행할 때, 두 대상을 연결하고 데이터를 전송할 수 있는 객체를 말합니다.
- 데이터를 운반하는데 사용되는 연결통로 역할을 합니다.
특징
- 단방향 통신만 가능합니다.
- 입력과 출력을 동시에 처리할 수 없습니다.
- 각각 입력스트림과 출력스트림이 필요합니다.
- FIFO 구조
- 먼저 보낸 데이터를 먼저 받습니다.
2. 바이트기반 스트림
- 바이트 단위로 데이터를 전송합니다.
- 출력의 단위가 모두 1byte 입니다.
- 입출력 대상에 따라 구현체가 제공됩니다.
- ByteArray : 메모리(byte)
- File : 파일
- Piped : 프로세스
- Audio : 오디오 장치
InputStream 추상클래스
read()
- 데이터를 읽어옵니다.
구현체
- ByteArrayInputStream : 다른 곳에 입력하기 전에 데이터를 임시로 담아 변환하는 작업에 사용됩니다.
- FileInputStream : 파일에 입력하기 위해 사용됩니다.
- PipedInputStream
- AudioInputStream
OutputStream 추상클래스
flush()
- 스트림의 버퍼에 있는 모든 내용을 출력소스에 씁니다.
write()
- 주어진 값을 출력소스에 씁니다.
구현체
- FileOutputStream
- ByteArrayOutputStream
- 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 |