Programming Language/Java

[Java] BufferedReader, BufferedWriter 써보기

Sergemeow 2022. 12. 6. 16:50

간단하게 말해

BufferedReader는 Scanner와 유사하고,

BufferedWriter는 System.out과 유사하다.

Buffer란 데이터를 전송하기 전 임시로 담아주는 곳을 의미하는데, 입력 받은 데이터를 모아뒀다가 한번에 전송하기 때문에 Scanner, System.out을 사용하는 것보다 대용량 데이터를 다룰 때 성능 측면에서 유리하다.

 

먼저 BufferedReader를 사용해보자.

라인 3 ~ 라인 8까지는 기능 import들이다. 

 

라인12에서는 예외처리가 된 것을 볼 수 있다. 

라인14에서 시스템으로 입력을 받는 BufferedReader인 br을 선언해주고, 

라인15에서 br을 통해 입력을 받은 값은 sampleSt라는 string으로 선언된다.

라인16에서는 sampleSt를 사용하여 StringTokenizer를 선언해줬는데, StringTokenizer는 String에서 공백을 기점으로 잘라서 토큰화 해주는 기능을 한다.

그리고 다음, 입력된 string의 첫 네개의 토큰을 System.out.print로 출력시켰다.

결과로, This is Tokenizer test를 입력하면 각각의 단어들이 잘려서 출력되는걸 확인할 수 있다.

 

BufferedWriter까지 사용하기 위해 아래와 같이 코드를 구성했다.

write를 통해 출력할 내용을 담고 flush를 통해 콘솔에 출력해줬다.

입력에 대한 결과값은 위와 같이 나온다.

 

한가지 유의할 점은 BufferedReader를 통해 입력받은 값은 기본적으로 String 형태라는 것이다. 정수형태로 쓰기 위해서는 Integer.parseInt로 정수 캐스팅을 해줘야한다.