◆ Scanner와 BufferedReader의 차이
◆ Scanner
- nextInt(), nextFloat(), nextLine() 등의 메서드를 사용하여 다양한 데이터 타입을 읽을 수 있습니다.
- 내부적으로 정규표현식을 사용하여 입력을 파싱하기 때문에, 공백, 탭, 줄 바꿈 등을 기본 구분자로 사용합니다. 따라서 여러 가지 유형의 입력 데이터를 쉽게 처리할 수 있습니다.
- 내부적인 파싱 로직 때문에 BufferedReader에 비해 느리다는 단점이 있습니다.
- 사용자 입력과 같은 작고 간단한 데이터를 처리하거나 입력의 구분자가 복잡한 경우, 또는 다양한 데이터 타입을 쉽게 파싱해야 하는 경우 사용하기에 적합합니다.
◆ BufferedReader
- Scanner보다 빠르지만 사용하기는 더 복잡합니다.
- 문자열을 읽어들이는 readLine() 메소드를 제공하는데, 이 메소드는 문자열을 반환하므로 각 데이터 타입에 따라 직접 파싱해야 합니다.
- ex) 정수를 읽으려면 Integer.parseInt()
를 사용해야 합니다.
- 입력을 버퍼에 저장하고 한 번에 읽는 방식을 사용하므로 대량의 데이터를 빠르게 읽을 수 있습니다. 따라서 성능이 중요한 요구사항에 적합합니다.