

보조스트림 변수 = new 보조스트림(연결스트림);
InputStream is = ...;
InputStreamReader reader = new InputStreamReader(is);


InputStream is = System.in;
InputStreamReader reader = new InputStreamReader(is);
BufferedReader br = new BufferedReader(reader);


Writer writer = new OutpurStreamWirter(바이트 기반 출력 스트림);
FileOutputStream fos = new FileOutputStream("C:/Temp/test.txt");
Writer writer = new OutputStreamWriter(fos);

Reader reader = new InputStreamReader(바이트 기반 입력 스트림);
FileInputStream fis = new FileInputStream("C/Temp/test.txt");
Reader reader = new InputStreamReader(fis);

BufferedOutputStream bos = new BufferOutputStream(바이트 기반 출력 스트림);
BufferedWriter bw = new BufferWriter(문자 기반 출력 스트림);

BufferedInputStream bis = new BufferedInputStream(바이트 기반 입력 스트림);
BufferedReader br = new BufferedReader(문자 기반 입력 스트림);
01 JAVA
02 C
03 Python
기본 타입인 boolean, char, short, int, long, float, double, UTF-8 문자열을 매우 쉽게 입출력

객체 생성 코드
DataInputStream dis = new DataInputStream(바이트 기반 입력 스트림);
DataOutputStream dos = new DataOutputStream(바이트 기반 출력 스트림);

public class DataInputStreamExample{
public static void main(String[] args) throws Exception {
// 바이ㅏ트 기반 출력 스트림을 생성하고 DataOutputStream 보조 스트림 연결
FileOutputStream fos = new FileOutputStream(fos);
//기본 타입 값 출력
dos.writeUTF("홍길동");
dos.writeDouble(95.5);
dos.writeInt(1);
}
}

PrintStream ps = new PrintStream(바이트 기반 출력 스트림);
PrintWriter pw = new PrintWriter(문자 기반 출력 스트림);


ObjectInputStream ois = new ObjectInputStream(바이트 기반 입력 스트림);
ObjectOutputStream oos = new ObjectOutputStream(바이트 기반 출력 스트림);
oos.writeObject(객체);
객체타입 변수 = (객체타입) ois.readObject();
public class XXX implements Serializable {...}
- 보조 스트림: 다른 스트림과 연결되어 여러 편리한 기능 제공해주는 스트림. 자체적으로 입출력 수행할 수 없기 때문에 입출력 소스와 바로 연결되는 InputStream, OutputStream, Reader, Writer 등에 연결해서 입출력 수행. 문자 변환, 입출력 성능 향상, 기본 타입 입출력 등 기능 제공
- 문자 변환: 소스 스트림이 바이트 기반 스트림이면서 입출력 데이터가 문자라면 Reader와 Writer로 변환해서 사용하는 것이 편리함. OutputStreamWriter는 Writer로 변환하는 보조 스트림이며, InputStreamReader는 Reader로 변환하는 보조 스트림
- 성능 향상: 메모리 버퍼 추가로 제공하여 프로그램의 실행 성능을 향상시키는 것들이 있음. 바이트 기반 스트림에서는 BufferedInputStream, BufferedOutputStream, 문자 기반 스트림에서는 BufferedReader, BufferedWriter가 있음
- 기본 타입 입출력: DataInputStream과 DataOutputStream 보조 스트림 연결하면 기본 타입인 boolean, char, short, int, long, float, double 입출력 가능
- 개행 출력: PrintStreamPrintWriter의 println() 메소드는 출력할 데이터 끝에 개행 문자인 \n추가하여 출력 시 콘솔이나 파일에서 줄 바꿈 일어남