오늘의 취준/오늘의 공부
[JAVA] BufferedReader/BufferedWriter
gogoem
2023. 5. 2. 17:56
728x90
Scanner 만 쓰던 나. 하지만 Buffer.. 어쩌고가 성능이 더 좋대서 한번 공부해봤다.
Scanner 와 유사하게 입력과 출력 기능을 하지만 이름에서 알 수 있듯이
버퍼를 사용해 입출력을 처리하기 때문에 속도가 빠르다고 한다.
Scanner은 키보드에서 키를 누르는 즉시 바로 프로그램에 입력이 전달되고
BufferReader는 키보드에서 키를 누르면 버퍼로 전송하여
버퍼가 가득 차거나 enter 키를 누르는 즉시 한 번에 내용을 전송하는 방법으로 이루어진다.
처음에는 버퍼를 거치는데 왜 속도가 더 빠를 수 있지? 하는 의문이 들었는데,
키보드를 이용한 외부 입력이 CPU에 전달되는 속도가 CPU의 처리 속도보다 느려서
글자를 하나씩 보내는 것 보다 입력 글자를 모두 모아 한 번에 보내는 것이
전체 입력의 관점으로 보면 더욱 빠른 일이라고 한다.
또한 한 번에 보내는 만큼 많은 양의 입력을 받을 때 용이하다고 한다.
Scanner는 스페이스와 엔터 중 입력을 구분할 문자를 고를 수 있고
자동으로 입력 값을 인식하는 반면,
BufferReader는 엔터로 입력값 경계를 구분하고
모든 입력값이 String 으로 고정되어 후가공이 필요할 수 있다.
[Import 값]
BufferedReader | import java.io.BufferedReader |
BufferdWriter | import java.io.BufferedWriter |
*ctrl + shift + o 누르면 import 자동 추천 생성
BufferedReader Breader = new BufferedReader(new InputStreamReader(System.in));
String example = Breader.readLine();
이런식으로 사용 가능
아래 글이 정리가 너무너무너무 잘 되어있어서 가져옴
이걸로 공부하기~!