티스토리 뷰
Buffer라는 개념은 일반적으로
데이터를 제공하는 곳과 제공받는 곳의 성능의 차이를 매꾸기위해 사용되며
한가지의 예로 저속장치가 작업을 처리하는 동안 고속장치가 기다리는 현상이 줄어듭니다.
저속의 장치의 작업을 기다려야 할 경우 만약 프린터의 성능을 저속 컴퓨터의 성능을 고속이라고 가정하면
프린터의 작업이 끝날때까지 컴퓨터를 사용할 수 없습니다.
또한 I/O요청이 줄어드는 결과가 생깁니다.
I/O란?
Input(입력)과 Output(출력)의 약자입니다.
컴퓨터 외부(Keyboard, Mouse)또는 내부(HDD, SSD)와 데이터를 서로 주고 받는 것
BufferInputStream?
보조스트림인 BufferInputStream을 사용해보기
BufferInputStream이 생성되면 내부 버퍼배열(기본 8,192Byte)이 생성됩니다.
이미 생성된 스트림에 배열 기능을 추가해 더 빠르게 입출력을 실행할 수 있는 버퍼링 기능을 제공합니다.
// not Buffer
FileInputStream fis1 = new FileInputStream("file path");
long start1 = System.currentTimeMillis();
while ((fis1.read())!= -1) {}
long end1 = System.currentTimeMillis();
System.out.print("\n" + (end1 - start1));
fis1.close();
// Buffer
FileInputStream fis2 = new FileInputStream("file path");
BufferedInputStream bis2 = new BufferedInputStream(fis2);
long start2 = System.currentTimeMillis();
while ((bis2.read())!= -1) {}
long end2 = System.currentTimeMillis();
System.out.print("\n" + (end2 - start2));
fis2.close();
bis2.close();
// 소요시간 약 20배 차이
Buffer를 사용하지 않는 경우 1Byte단위로 I/O가 일어나서 효율이 떨어지게 됩니다.
Socket통신으로 받은 간단한 문자열 출력
Server
ServerSocket sc = new ServerSocket(8081);
Socket socket = sc.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String data;
while ((data = br.readLine()) != null){
System.out.print(data);
}
Client
String MESSAGE = "hello 메시지";
Socket cs = new Socket("127.0.0.1", 8081);
OutputStream os = cs.getOutputStream();
os.write(MESSAGE.getBytes());
os.flush();
반응형
'Java & Kotlin' 카테고리의 다른 글
Java Generic (0) | 2022.12.12 |
---|---|
Java NIO (0) | 2022.12.11 |
Java Stream (0) | 2022.12.10 |
Java annotation (0) | 2022.12.10 |
Java enum (0) | 2022.11.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- springboot
- 백준 제로 자바
- 다대일
- ㅃ
- jre8
- 백준
- 개발자채용
- 관계설정
- 백엔드
- 백준 제로
- jdk11
- 코딩테스트
- 자바
- jre
- jre11
- 문제
- 알고리즘
- Spring
- JDK8
- 스택
- 자사서비스
- boot 일대다
- JDK
- jvm
- 스타트업
- 프로그래머
- mappedby
- boot
- java8
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함