BackEnd/Java

java bufferedreader BufferedWriter

철철22 2018. 7. 20. 12:00
반응형

Java를 처음 공부하면 책에서 입출력을 받기위해 소개하는 클래스가 있다.



바로 Scanner이다 

Scanner scan = new Scanner(System.in)
int a = scan.nextInt();
String a = scan.next();



하지만 Scanner에는 문제가 하나 있다.

입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다.


이러한 해결을 하기위한 방법이 이 글에 적혀있다.


Java에서는 


Scanner System.out.println 대신 BufferedReader BufferedWriter를 사용할 수 있다. 


BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다.


BufferedWriter 외에도, StringBuilder로 출력을 모아 놓았다가 그 String을 System.out.println하는 방법도 있다.


BufferedReader/BufferedWriter는 Buffer에 있는 IO 클래스이다.


BufferedReader의 경우에는 한 줄씩 읽어 들이는 readLine() 메소드가 있기 때

문에 한 줄씩 읽어들이기에 매우 편리


BufferedWriter의 경우 버퍼가 있기 때문에 반드시 flush() 메소드를 이용하거나 close() 메소드를 호출해야한다.


BufferedReader bur = new BufferedReader( new InputStreamReader( System.in ) );
BufferedWriter buw = new BufferedWriter( new OutputStreamWriter( System.out ) );


BufferedReader 문서     BufferedWriter 문서 에는 각각 사용할 수 있는 메소드가 적혀있다.





참고 : 

http://snacky.tistory.com/10
http://wiki.gurubee.net/display/SWDEV/BufferedReader%2C+BufferedWriter

반응형