Contents
통신 방식 종류자바에서 스트림은 “바이트들의 연속적인 흐름”이라고 하네요. 스트림의 소스와 목적지를 파일과 네트워크와 입출력 장치, 객체와도 연결하면 이해하기 쉽겠네요
예제) 입력 출력 프로그램
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); } } }

flush
- 버퍼가 데이터를 목적지로 전송하고 비우는 작업
버퍼가 flush하는 방식 - 버퍼 크기 4byte, 문자열 5byte <hello>
H | E | L | L |
E | L | L | O |
O | ㅤ | ㅤ | ㅤ |
ㅤ | ㅤ | ㅤ | ㅤ |
L | L | O | ㅤ |
L | O | ㅤ | ㅤ |
Stream의 단점은 1byte씩 저장한다.
예제2)
flush()
메소드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("안녕하세요.\n"); bw.flush(); bw.write("처음만난 사람들도 안녕하세요.\n"); bw.flush(); bw.write("안녕안엲ㅇㅇ난하쎼요"); } catch (IOException e) { throw new RuntimeException(e); } } }

랩 파트가 출력되지 않았다…
flush()
메서드를 사용한 시점까지 버퍼(buffer)에 남아있는 데이터를 출력(Output)한다.⚠️통신에선 readLine()
는\n
가 내려쓰기가 아니라! \n
까지 데이터를 분리하여 읽는다.!
└>[Enter]와 동일한 역할
통신 방식 종류
Simplex (단방향)
- 송신자와 수신자가 각각 통신할 수 있는 방향이 정해져 있다. 보내기/받기만 가능
ex)라디오
Half Duplex (반이중)
-요청을 보내야 응답을 반환할 수 있음. 요청 후 받기.
ex) 무전기, 웹사이트
Full Duplex (전이중, 양방향)
-언제든지 데이터를 보내고 받을 수 있다. 보내고 받기를 동시에 가능.
ex) 실시간 대화 / 게임
Share article