BufferedReader와 Scanner 모두 클래스를 기반으로 만든 '객체(인스턴스)'
자바에서는 어떤 기능을 사용하기 위해 new 키워드를 사용하여 메모리에 그 기능을 할당하는데, 이를 객체 생성이라고 한다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.in: 바이트 단위로 입력을 받는 기본 객체new InputStreamReader(...): 바이트를 문자(char)로 바꿔주는 다리 역할 객체new BufferedReader(...): 문자를 버퍼에 담아 한 번에 읽게 해주는 최종 객체 (br)Scanner sc = new Scanner(System.in);
System.in: 입력을 받는 기본 객체를 통째로 넘겨받습니다.new Scanner(...): 이 입력값을 분석(Parsing)해서 숫자나 문자열로 요리해주는 객체 (sc)를 생성합니다.br이나 sc 모두 System.in을 사용할 경우 프로그램 종료 시 GC가 정리해주긴 하지만, 자바의 정석은 close()를 명시해줘야 한다!
Scanner의 주요 메서드next() : 공백(Space)이나 줄바꿈 전까지의 문자열을 읽음.
nextLine() : 한 줄 전체를 읽음 (엔터 키를 칠 때까지).
nextInt() : 정수를 읽음.
nextDouble() : 실수를 읽음.
readLine()을 쓸 때 반드시 throws IOException을 선언하거나 try-catch로 감싸야 합니다. (컴파일러가 강제함)InputMismatchException이 발생할 수 있습니다.