○스트림 : 데이터를 운반하는데 사용되는 연결통로
기반스트림 : 보조스트림의 부모가 되는 클래스
입력스트림 |
출력스트림 |
입출력 대상 종류 |
FileInputStream |
FileOutputStream |
파일 |
ByteArrayInputStream |
ByteArrayOutputStream |
메모리(byte배열) |
PipedInputStream |
PipedOutputStream |
프로세스(프로세스간의 통신) |
AudioInputStream |
AudioOutputStream |
오디오 장치 |
○보조스트림
-주 스트림의 기능을 보완하기 위한 스트림
-실제 데이터를 주고받는 스트림은 아님
-스트림의 기능을 향상시키거나 새로운 기능을 추가
사용법 : 주 스트림을 먼저 생성한 다음 이를 이용하여 보조스트림 생성
ex)
1. 기반스트림 생성
FileInputStream fis = new FileInputStream("test.txt");
2. 보조스트림 생성
BufferedInputStream bis = new BufferedInputStream(fis);
3. 보조스트림 사용
bis.read();
종류
입력 |
출력 |
|
FilterInputStream |
FilterOutputStream |
|
BufferedInputStream |
BufferedOutputStream |
|
DataInputStream |
DataOutputStream |
|
SequenceInputStream |
SequenceOutputStream |
|
LineNumbreInputStream |
|
|
ObjectInputStram |
ObjectOutputStream |
|
|
PrintStream |
|
PushbackInputStream |
|
|
○문자기반 스트림
-바이트 기반 스트림은 1byte를 기반으로 하므로 java와 같이 문자가 2byte기반인 언어에서는 문자를 처리하는데 어려움이 있다. 문자데이터를 입출력 할 때는 문자기반 스트림을 사용하는 것이 유리하다.
바이트기반 스트림과 문자기반 스트림
바이트기반 스트림 |
문자기반 스트림 |
FileInputStream FileOutputStream |
FileReader FileWriter |
ByteArrayInputStream ByteArrayOutputSTream |
CharArrayReader CharArrayWriter |
PipedInputStream PipedOutputStream |
PipedReader PipedWriter |
StringBufferInputStream(deprecated) StringBufferOutputStream(deprecated) |
StringReader StringWriter |
바이트기반 보조스트림과 문자기반 보조스트림
바이트기반 보조스트림 |
문자기반 보조스트림 |
BufferedInputStream BufferedOutputStream |
BufferedReader BufferedWriter |
FilterInputStream FilterOutputStream |
FilterReader FilterWriter |
LineNumberInputStream(deperecated) |
LineNumberReader |
PrintStream |
PrintWriter |
PushbackInputStream |
PushbackReader |