Scanner와 BufferedReader는 모두 자바에서 입력을 받을 때 사용하는 클래스이지만, 그들의 용도와 성능, 사용 편의성에 차이가 있다. 아래에 Scanner와 BufferedReader의 차이점을 정리해 보았다.
nextInt(), nextDouble(), nextLine() 등을 사용해 원하는 Data Type을 읽음| 기본 선언 | 코드 | 설명 |
|---|---|---|
| 기본 선언 | Scanner scanner = new Scanner(System.in); | |
nextInt(), nextDouble() | int number = scanner.nextInt();double number = scanner.nextDouble(); | 정수(int), 실수(double)를 입력 받을 때 사용 |
nextLine() | String line = scanner.nextLine(); | 한 줄 전체의 문자열을 입력 받을 때 사용 |
InputStreamReader와 함께 사용되어 다양한 소스로부터 입력을 받음readLine() 메서드를 사용하여 한 줄씩 읽은 후, 필요에 따라 String.split() 메서드 또는 tokenizer 사용| 기본 선언 | BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); |
|---|
🙆 BufferedReader를 사용하여 입력을 받은 후, StringTokenizer를 사용하여 문자열을 토큰으로 분리!
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
n = Integer.parseInt(st.nextToken());
k = Integer.parseInt(st.nextToken());