BufferedReader
:Scanner와 유사.
Bufferedwriter
:System.out.println();과 유사
둘은 모두 기존에 쓰던 scanner와 System.out.println()보다 속도 측면에서 훨씬 빠르기 때문에 많은 양의 데이터를 처리할 때 유리하다.
(입력된 데이터가 바로 전달되지 않고 버퍼를 거쳐 전달되므로 데이터 처리 효율성을 높임)
BufferdReader은 받은 데이터가 String으로 고정되기 때문에 입력받은 데이터를 가공하는 작업이 필요한 경우가 많다.
입력은 readLine();이라는 메서드를 활용하는데, 여기서 반드시 주의해야할 점 2가지가 있다.
첫번째는 readLine()시 리턴값을 String으로 고정되기에 String이 아닌 다른타입으로 입력을 받을려면 형변환을 꼭 해주어야한다는 점이다.
두번째는 예외처리를 꼭 해주어야한다는 점이다. readLine을 할때마다 try & catch를 활용하여 예외처리를 해주어도 되지만 대개 throws IOException을 통하여 작업한다.
BufferedReader에도 단점이 있다.
1. IOException의 예외처리가 필수적이다.
2. 입력받은 모든 데이터가 String으로 반환된다.
3. 줄마다 입력받아서, 따로 split하여 데이터를 처리해주어야 한다.
4. 숫자형식으로 받기 위해서는 형변환이 필요하다.