Scanner vs BufferedReader

public class Test {
	public static void main(String[] args) throws NumberFormatException, IOException {
		// Scanner 속도
		System.out.println("첫번째 Scanner");
		Scanner sc = new Scanner("1222222222222");
		
		long start = System.nanoTime();
		long n1 = sc.nextLong();
		long end = System.nanoTime();
		
		System.out.println(end - start);
		
		//BufferedReader 속도
		System.out.println("두번째 버퍼");
		BufferedReader br = new BufferedReader(new StringReader("1222222222222")); 
		
		long start2 = System.nanoTime();
		long n2 = Long.parseLong(br.readLine());
		long end2 = System.nanoTime();
		
		System.out.println(end2 - start2);
		
		System.out.println("성능 차이는 " + ((end-start) - (end2 - start2)));
	}
}

테스트 중 주의할 점

속도측정은 Scanner이나 BufferedReader이 선언되었을 때 부터입니다.

직접 키보드로 입력을 받는다면 사용자가 키를 언제 입력하는가에 따라서

결과가 달라집니다.

성능이 BufferedReader이 빠르지만 사용자가 키보드로 입력하지 않는다면

Scanner에 비해서 매우 느리게 나올 수 있습니다.