Contents
스트림 통신 예제스트림 전송 그림

- (Byte) Stream : 끝이 없는 Byte의 흐름 (물길)
- 버퍼 : 공급이 소비보다 많을 때 필요함
- 파일은 한 번에 보조스트림(버퍼)의 크기 만큼 데이터를 소비한다.
- 버퍼가 꽉 차야지만 파일이 데이터를 소비한다.
- flush : 강제로 버퍼의 데이터를 파일로 흘려보내는 것(원래는 꽉 차야지만 데이터를 소비함)
스트림 통신 예제
InputStreamReader
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class StreamEx03 {
public static void main(String[] args) {
InputStreamReader ir = new InputStreamReader(System.in); // 통신을 할 때에는 System.in 말고 소켓
BufferedReader br = new BufferedReader(ir);
try {
String line = br.readLine();
System.out.println(line);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
OutputStreamWriter
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class StreamEx04 {
public static void main(String[] args) {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
try {
bw.write("안녕 "); // readLine으로 읽기때문에 \n까지 읽어라고 \n을 입력해줘야함
bw.write("반가워\n");
bw.flush(); // 반드시 flush
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}

Share article