Java를 배우다보면 Scanner라는 입력 방식을 배우게된다.
Scanner 말고도 BufferedReader라는 입출력 방식이 있는데 BufferdReader에 대해 정리해보겠다.
BufferdReader
:Scanner과 유사하다.
Bufferedwriter
:System.out.println();과 유사하다.
BufferdReader 사용법
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //선언
String s = bf.readLine(); //String
int i = Integer.parseInt(bf.readLine()); //Int
- readLine():
- 데이터 라인 단위로 읽기 가능
- Scanner처럼 공백단위로 끊어주지는 못함. 엔터만 경계로 인식한다.
- 리턴값을 String으로 고정하기 때문에 String이 아닌 다른 타입으로 입력받으려면 타입을 지정해주어야함.
<주의 할 점>
✅예외처리를 꼭 해줘야한다.
throws IOException을 통하여 작업한다!
BufferdWriter 사용법
- buffer에 저장되어 있떤 데이터가 한번에 출력된다.
- flush()와 close를 호출해 종료해줘야한다.
Scanner와 BufferdReader의 차이

✅ 둘의 대표적인 차이는 속도이다. 적은 양의 데이터라면 성능 차이가 크게 없지만 많은 양의 데이터를 받을 때는 BufferedReader가 확연하게 높은 성능을 보여준다.
Java를 배우다보면 Scanner라는 입력 방식을 배우게된다.
Scanner 말고도 BufferedReader라는 입출력 방식이 있는데 BufferdReader에 대해 정리해보겠다.
BufferdReader
:Scanner과 유사하다.
Bufferedwriter
:System.out.println();과 유사하다.
BufferdReader 사용법
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //선언
String s = bf.readLine(); //String
int i = Integer.parseInt(bf.readLine()); //Int
- readLine():
- 데이터 라인 단위로 읽기 가능
- Scanner처럼 공백단위로 끊어주지는 못함. 엔터만 경계로 인식한다.
- 리턴값을 String으로 고정하기 때문에 String이 아닌 다른 타입으로 입력받으려면 타입을 지정해주어야함.
<주의 할 점>
✅예외처리를 꼭 해줘야한다.
throws IOException을 통하여 작업한다!
BufferdWriter 사용법
- buffer에 저장되어 있떤 데이터가 한번에 출력된다.
- flush()와 close를 호출해 종료해줘야한다.
Scanner와 BufferdReader의 차이

✅ 둘의 대표적인 차이는 속도이다. 적은 양의 데이터라면 성능 차이가 크게 없지만 많은 양의 데이터를 받을 때는 BufferedReader가 확연하게 높은 성능을 보여준다.