Stream이란?
통로역할
단방향으로 데이터가 흐르는 것으로, 입력 스트림에서 출력스트림을 통해 데이터를 입출력한다.
Stream의 종류
바이트 Stream
: 그림, 멀티미디어, 문자 등 모든 종류의 데이터를 입출력할 때 사용- 바이트입력스트림 : InputStream - read() : 바이트 단위로 읽기
- 바이트출력스트림 : OutputStream - writer() : 바이트 단위로 쓰기(출력)
ex) 파일에서 바이트데이터를 읽는다? FileInputStream
ex) 파일에서 바이트데이터를 저장하려면? FileOutputStream
int data = System.in.read(); System.out.println((char)data); int -> byte() byte() -> int //너무 복잡해져버림
문자 Stream
: 문자만 입출력할 때 사용 (한글)- 문자입력스트립림: Reader - read() : 문자단위로 데이터를 읽기
- 문자출력스트림 : Writer - write(),print(),println() : 문자단위로 데이터를 출력
ex) 파일에서 문자데이터를 읽으려면 어떤 스트림이 필요한가 ? FileReader
ex) 파일에서 문자데이터를 저장하려면 어떤 스트림이 필요한가 ? FileWriter
처리방식에 따른 분류
노드 Stream
: 입출력 데이터에 가장 먼저 연결되는 스트림
필터 Stream
: 단독 사용 불가 → 노드 Stream에 연결(연쇄)해서 사용해야한다.⇒
바이트 Stream
과문자 Stream
과 연결시켜서 사용하는 개념- 입출력의 성능을 개선시키는 용도
- 버퍼기능이 있는 스트림
- BufferedInputStream, BufferedOutputStream
- BufferedReader, BufferedWriter
⇒ Buffer을 사용하면 행 단위로 문자열을 읽는 readLine()메소드를 제공
브릿지 Stream
: 바이트 입력 스트림을 문자 입력 스트림으로 변환시키는 스트림바이트 입력 Stream → 문자 입력 Stream : InputStreamReader
바이트 출력 Stream → 문자 출력 Stream : OutputStreamWriter

InputStream is = System.in;
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
//(결과적으로) 키보드로부터 라인단위로 문자열을 입력받기 위한 스트림을 연결 ?
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Uploaded by N2T