스트림
- 데이터가 이동되는 통로
- 입력 스트림(input) + 출력 스트림(output) = IO
스트림의 특징
- FIFO 자료구조
- 단방향 처리(대표적으로 Queue 구조)
- 데이터 종류에 따라 바이트/문자 구분(스트림 최상위 추상 클래스)
- 바이트 단위 : InputStream, OutputStream
- 문자 단위 : Reader, Writer
- 직접 객체 생성은 불가하며, 클래스를 상속받는 클래스가 존재
스트림의 흐름
입력 -> 입력 스트림 -> 프로그램 -> 출력 스트림 -> 출력
- 입력 스트림은 필요 기능들을 추상 메서드로 정의해 놓았음
- 주요 메서드
- int read()
- int read(byte[] b)
- int read(byte[] b, int off, int len)
- void close()
OutputStream 클래스 주요 메서드
- 주요 메서드
- void write(int b)
- void write(byre[] b)
- void(byte[] b, int off, int len)
- void flush()
- void close()
Reader 클래스 주요 메서드
- 문자 단위로 읽어들인다는 것에서 바이트 단위 스트림과 다르다.
- 주요 메서드
- int read()
- int read(char[] b)
- int read(char[] b, int off, int len)
- void close()
Writer 클래스 주요 메서드
- 주요 메서드
- void write(int c)
- void write(char[] c)
- void(char[] c, int off, int len)
- write(String s)
- write(String s, int off, int len)
- void flush()
- void close()