본문 바로가기
Language/자바

자바 Scanner vs BufferedReader

by 띵커베르 2023. 1. 22.
728x90
  • 자바로 알고리즘 풀다가 매번 입력받는 형식을 Scanner 복붙으로 하다, BufferedReader 로 받는 방식이 보여 찾아봄.
  • Scanner 방식
import java.util.Scanner;

public class Sc {
    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 Bf {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String input = br.readLine();
    }
}
  • 속도는 BufferedReader 가 빠름.
  • 왜 속도 차이가 날까
    • Scanner 는 토큰 파서라는 기능을 가지고 있어, 문자열을 토큰으로 분리 하는 과정에서 시간이 좀 더 소요
      • Scanner 는 입력받은 값이 "a b c" 를 "a""b""c"처럼 인식
      • 1KB 버퍼의 크기를 사용
    • BufferedReader 는 입력을 받은 문자열을 통째로 읽어들임
    • 8KB 버퍼의 크기를 사용
  • 양질의 블로그 발견: https://dlee0129.tistory.com/238
 

자바(JAVA) - Scanner & BufferedReader

자바(JAVA) - Scanner & BufferedReader 자바를 처음 배울 때 사용자(키보드) 입력받기 위해 보통 Scanner 클래스를 사용합니다. 하지만 알고리즘을 풀기 시작하면서 백준에서 Scanner를 사용하여 입력을 받으

dlee0129.tistory.com

 

읽다보니 stream 에 대해도 한번 정리해야할 필요를 느낌.

728x90

댓글