먼차이
Scanner메소드
nextInt() : 공백 전까지 숫자 추출, 반환형이 int 나머지는 String
nextLine() : 개행 전까지 문자열 추출(공백포함)
next() : 공백 전까지 문자열 추출
그래서 123 abc를 뽑을 때
nextInt()하면 123 추출 후
nextLine()하면 " abc" 추출(공백도같이 개행전까지)
만약 123입력 시에
nextInt()하면 123 추출 후
nextLine()하면 빈 문자열 추출
nextInt()있는데 문자열 쓰면 에러(InputMismatchException)
또,
123 abc를 뽑을 때
nextInt()하면 123 추출 후
nextLine()하면 "abc" 추출(공백 없이 공백전까지)
만약
123
abc 이렇게 입력하려고 하면
nextInt()로 123 뽑고
nextLine()으로 개행 하나 죽여주고 (=> 빈문자열만 가져가는 String하나 뽑아주기)
다시 nextLine()으로 "abc"뽑아주면 됨
BufferedReader
read() : 반환형이 int형 근데 웃긴게 출력할 때는 아스키코드로 변환해서 출력함
그래서 1이 49로 출력되고, a도 출력이 됨=> 97로 출력됨ㅋㅋ
한 행이나 단어로 읽히는 게 아니라 한 문자씩만 읽음(문자) -> 이럴건데 왜 버퍼를 쓰는 거임?
readLine() : 반환형이 String, 말 그대로 한 줄을 다 읽음(개행 전까지)
BufferedReader는 문자열을 읽음(얘는 보조스트림이라서 주스트림이 매개변수로 꼭 있어야 함)
InputStreamReader : 문자 단위로 읽음(2byte씩)
InputStream : 바이트 단위로 문자를 읽음(1byte씩)