Stream이란?
실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름을 의미한다.
즉, 스트림은 운영체제에 의해 생성되는 가상의 연결 고리를 의미하며, 중간 매개자 역할을 한다!

자바에서는 바이트 기반 스트림과 문자 기반 스트림 두개로 나뉜다.
그리고 바이트 기반 스트림과 문자 기반 스트림은 각각
스트림을 실제로 읽고 쓰는 기반 스트림과
기반스트림이 읽어온 데이터를 처리하는 보조스트림 으로 나뉜다.
보조스트림은 생성자로 기반스트림을 받아서 실제 데이터를 읽어온다.
바이트 기반 스트림
1Byte단위로 입출력을 한다.
입력에서는 InputStream 클래스, 출력에서는 OutputStream이 있다.
모든 바이트 기반 스트림은 InputStream과 OutputStream의 하위 클래스이다.
기반 스트림
입력 스트림 | 출력 스트림 |
FileInputStream | FileOutputStream |
ByteArrayInputStream | ByteArrayOutputStream |
PipedInputStream | PipedOutputStream |
AudioInputStream | AudioOutputStream |
보조 스트림
입력 스트림 | 출력 스트림 |
FilterInputStream | FilterOutputStream |
BufferedInputStream | BufferedOutputStream |
DataInputStream | DataOutputStream |
ObjcectInputStream | ObjectOutputStream |
SequenceInputStream | |
PushbackInputStream | |
PrintStream |
문자 기반 스트림
바이트 기반 스트림에서는 기본적으로 1Byte씩 다루기 때문에 문자 같은 2Byte를 처리하기 힘들다.
그래서 Reader, Writer 같은 문자 기반 스트림이 제공된다.
모든 문자 기반 스트림은 Reader, Writer의 하위 클래스이다.
기반 스트림
입력 스트림 | 출력 스트림 |
FileReader | FileWriter |
CharArrayReader | CharArrayWriter |
PipedReader | PipedWriter |
StringReader | StringWriter |
보조 스트림
입력 스트림 | 출력 스트림 |
FilterReader | FilterWriter |
BufferedReader | BufferdWriter |
PushbackReader | |
PrintWriter |
'Language > Java' 카테고리의 다른 글
[Java] 자바의 바이트 기반 스트림 OutputStream / Single byte VS Byte Array 출력 비교 (2) | 2022.09.23 |
---|