BufferedReader

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();

 

특징

  • 입력 속도가 빠름 (버퍼를 사용하니까)
  • 항상 **문자열(String)**로 입력을 받음 (readLine()은 줄 단위 입력)
  • 형 변환은 직접 해야 함
    int num = Integer.parseInt(br.readLine());
  • Java 1.1부터 지원 (좀 더 전통적인 방식)

장점

  • 속도가 빠르고 대용량 입력 처리에 유리함
    → 알고리즘 문제 풀이할 때 자주 사용됨

단점

  • 입력값을 직접 파싱해야함

 

Scanner

Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
String str = sc.nextLine(); // or sc.next()

 

특징

  • 입력 타입별로 메서드가 다양함 (nextInt(), nextDouble(), nextLine() 등)
  • 입력 속도가 느림 (버퍼 사용 안 함 or 적게 사용함)
  • Java 5부터 도입된 편리한 입력 클래스

장점

  • 간편하고 가독성 좋음
  • 형 변환 필요 없이 입력 타입대로 받을 수 있음

 단점

  • 속도가 느려서 입력이 많은 경우엔 비효율적
  • next() vs nextLine() 혼동해서 실수하는 경우 많음

 

비교 요약

  BufferedReader Scanner
속도 빠름 느림
입력 방식 문자열 줄 단위 (readLine()) 다양한 타입별 메서드 (nextInt(), nextLine())
형변환 수동 자동
사용 용도 대용량 입력, 알고리즘 간단한 입력, 교육용
에러 처리 예외 처리 필요 (IOException) 예외 처리 덜 필요

'코딩테스트' 카테고리의 다른 글

백준 1000번 A+B  (0) 2025.04.07
StringBuilderStringTokenizer  (0) 2025.04.07
StringTokenizer  (0) 2025.04.07
BufferedReader  (0) 2025.04.07
StringBuilder  (0) 2025.04.07

+ Recent posts