<자바의정석 Chapter 15 정리>
1. 입출력 이란?
- I/O란 Input과 Output의 약자
2. 스트림(stream)
- 다른 쪽으로 데이터를 전달, 연결/전송을 위한 스트림
- 스트림 : 데이터를 운반하는데 사용되는 연결통로
- 단방향통신만 가능 /
입력을 위한 입력스트림(Input stream) /
출력을 위한 출력스트림(output stream) 2개 필요
3. 바이트기반 스트림 - InputStream, OutputStream
- 스트림은 바이트단위로 데이터 전송
입력스트림 | 출력스트림 | 대상 |
FileInputStream | FileOutputStream | 파일 |
ByteArrayInputStream | ByteOutputStream | 메모리 byte배열 |
PipedInputStream | PipedOutputStream | 프로세스(프로세스간 통신) |
AudioInputStream | AudioOutputStream | 오디오장치 |
- 모두 InputStream, OutputStream의 자손들 / java.io패키지를 통해
메소드
InputStream | OutputStream |
abstract int read() | abstract void write(int b) |
int read(byte[] b) | void write(byte[] b) |
int read(byte[] b, int off, int len) | void write(byte[] b, int off, int len) |
- abstract int read() / abstract void write(int b) : 추상메서드로 정의, 상황에 알맞게 구현
4. 보조 스트림
- 데이터 입출력 기능X, 스트림의 기능 향상, 새로운 기능 추가
- 스트림을 먼저 생성 -> 보조 스트림을 생성
//1. 기반 스트림을 생성
FileInputStream fis = new FileInputStream("text.txt");
//2. 기반 스트림을 이용해서 보조 스트림 생성
BufferedInputStream bis = new BufferedInputStream(fis);
//3. 보조스트림인 BufferedInputStream으로부터 데이터를 읽는다
bis.read();
-Filter / Buffered / Data / Sequence / LineNumber / Object / Print / Pushback ....