본문 바로가기
  • RATEL.SHO
[JAVA]

BufferedReader / BufferWriter

by ratelsho 2023. 5. 11.

- 하드디스크는 원래 속도가 엄청 느립니다. 하드뿐만 아니라 키보드나 모니터와 같은 외부 장치와의 데이터 입출력은 생각보다 시간이 걸리는 작업이예요. 버퍼링 없이 키보드가 눌릴 때마다 눌린 문자의 정보를 목적지로 바로 이동시키는 것보다 중간에 메모리 버퍼를 둬서 데이터를 한데 묶어서 이동시키는 것이 보다 효율적이고 빠르다. 

- 모아뒀다가 한 번에 전송하는게 훨씬 더 효율적이기 때문에 Scanner보다 속도가 빠름

 

 

BufferedReader 

- 입력 스트림에서 문자를 읽는 함수인데 문자나 배열, 라인들을 효율적으로 읽기 위해서 문자들을 버퍼에 저장하고(버퍼링) 읽는 방법을 취한다. 버퍼 사이즈는 우리가 지정할 수도 있지만 지정안할 경우에는 기존 디폴트 사이즈가 사용됩니다.

 

Read한 데이터는 Line단위로만 나눠지기에 공백단위로 데이터를 가공하려면 따로 작업을 해주어야하는데, 두가지 방법이 대표적이다.

첫번째 방법으로는 StringTokenizer에 nextToken()함수를 쓰면 readLine()을 통해 입력받은 값을 공백단위로 구분하여 순서대로 호출할 수 있다.

두번째 방법으로는 String.split()함수를 활용하여 배열에 공백단위로 끊어서 데이터를 넣고 사용하는 방식이다..

BufferedReader클래스의 또 다른 메인 함수들

BufferedWriter

- 버퍼를 이용하기 때문에 System.out.print(""); 보다 성능면에서 좋다.

- 버퍼를 이용하기 때문에 flush()함수를 통해서 버퍼에 남아있는 데이터를 출력해 없앤 후, 스트림을 닫아줘야한다.

 

BufferedWriter클래스의 또 다른 메인 함수들

 

 

 

출처-https://jhnyang.tistory.com/entry/Java-%EC%9E%90%EB%B0%94-%EC%9E%85%EC%B6%9C%EB%A0%A5-BufferedReaderBufferedWriter