[java]scanner & BufferedReader

yoontaeng·2022년 7월 6일
0

scanner와 BufferedReader

  • 이둘의 가장 큰 차이점은 바로 속도이다!!!

백준알고리즘을 풀다가 scanner를 사용하니 실행시간이 너무 오래걸리거나 시간초과가 나오는 상황이 있다. 이때 BufferedReader를 사용하게 되면 buffer를 사용하기때문에 시간을 단축할 수 있다.

  • Scanner 사용법
import java.util.Scanner;
public class Input {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        String input = sc.nextLine();
    }
}
  • BufferedReader 사용법
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Input {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String input = br.readLine();
    }
}

BufferedReader를 사용할때에는 throws IOException을 사용하여 여러가지 입출력에 대한 예외처리를 해줘야한다. but Scanner는 system.in 입력시 내부에서 처리하므로 사용x, print,println과 같이 자주사용되는 것도 내부에서 자동으로 처리

👍

위그림처럼 BufferedReader는 buffer를 사용하여 buffer에서 한번에 보내기 때문에 빠르고 scanner는 입력이 바로전달되어 입력을 읽는 과정에서 내부 regular expression, 파싱등의 과정을 거치므로 속도가 늦어지게 되는것이다.

profile
병아리개발자

0개의 댓글