자바

자바 입출력: Scanner vs BufferedReader

Hyun-danpung2 2022. 2. 26. 20:28
728x90
반응형

처음 자바를 배울 때는 키보드에서 입력받기 위해 Scanner를 사용했다. 그리고 혼자 공부를 시작하면서 BufferedReader를 더 많이 사용하기 시작했다. 그런데 막상 그 차이점은 잘 모르고 단순히 BufferedReader가 더 효율적이라는 말에 쓰기 시작했다. 그래서 두 가지를 비교해보았다.

 

 

 

1. Scanner

  • java.util 패키지
  • 키보드에서 입력받는 대로 바로 처리
  • 엔터와 스페이스로 구분 -> 공백 입력 불가
  • 원하는 타입으로 받을 수 있음
import java.util.Scanner;

    Scanner scanner = new Scanner(System.in);
    int n;

    n = scanner.nextInt();

 

2. BufferedReader

  • java.io 패키지
  • 키보드의 입력을 버퍼에 저장했다가 한번에 처리
  • 엔터로 구분
  • 무조건 String으로 받기 때문에 다른 타입으로 이용하려면 형변환 필요
  • 예외 처리 필요
import java.io.BufferedReader;
import java.io.InputStreamReader;

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n;
        try {
            n = Integer.parseInt(br.readLine());
        } catch (Exception e){
            // 예외 시
        }

 

 

 

*일반적으로 BufferedReader가 Scanner보다 빠르다고 한다.

728x90
반응형