입출력 스트림
- 스트림(Stream): 자바의 데이터 입출력 흐름으로, 스트림 방향에 따라 종류 결정
- 바이트 기반 스트림: 그림, 멀티미디어 등의 바이너리 데이터를 읽고 출력
- 문자 기반 스트림: 문자 데이터를 읽고 출력
바이트 기반 스트림
1. 바이트 출력 스트림: OutputStream
2. 바이트 입력 스트림: InputStream
- 반환된 4byte 중 마지막 1byte에만 데이터 포함
- 입력 스트림으로부터 바이트를 더 읽을 수 없다면 -1 반환
- 읽을 수 있는 마지막 바이트까지 반복해 1byte씩 읽기 가능
문자 기반 스트림
1. 문자 출력 스트림: Writer
2. 문자열 입력 스트림: Reader
- 반환된 4byte 중 마지막 2byte에 데이터 포함
- 반환된 int 값을 char 타입으로 변환해 문자 얻기 가능
- 입력 스트림으로부터 문자를 더 이상 읽을 수 없다면 -1 반환
- 읽을 수 있는 마지막 문자까지 반복해 한 문자 씩 읽기 가능
보조 스트림
- 다른 스트림과 연결되어 여러 가지 편리한 기능을 제공
- 자체적으로 입출력이 불가능해 바이트/문자 기반 스트림 등에 연결해 사용
- 문자 변환, 입출력 성능 향상, 기본 타입 입출력 등의 기능 제공
- 프로그램은 입/출력 스트림을 직접 이용하지 않고 보조 스트림을 이용
1. 문자 변환 보조 스트림
2. 성능 향상 보조 스트림
- 프로그램의 실행 성능은 입출력이 가장 늦은 장치 기준
- 입출력 소스와 직접 작업하지 않고 중간에 메모리 버퍼 추가로 성능 향상
- 출력 스트림에도 기본적으로 작은 버퍼가 있지만 성능이 낮음
- 바이트 기반 보조 스트림: BufferedInputStream, BufferedOutputStream
- 문자 기반 보조 스트림: BufferedReader, BufferedWriter
3. 기본 타입 입출력 보조 스트림
4. 프린터 보조 스트림
5. 객체 입출력 보조 스트림
System.in / System.out 필드
File 클래스