Java
[JAVA] BufferedReader 는 런타임에러, Scanner는 정답인 이유
iheeeee6-6
2023. 4. 16. 00:42
728x90
아마 입력 txt가 유닉스 서버에서 윈도우에서 생성된 txt 일 것이라고 한다!!
유닉스(리눅스) 텍스트 파일의 줄바꿈은 '\n'(Line Feed, LF)이다.
윈도우는 '\r'(Carrage Return, CR)과 '\n'를 이어서 표시한다. (CRLF라고 부름)
유닉스 서버에 윈도우즈 텍스트 파일을 그대로 올리면, 읽을 때 '\r'이 하나 더 붙은 걸로 해석된다.
'\n'을 이용해 읽는 단위를 결정하고, '\r'은 텍스트로 생각하고 읽어버린다.
이때, 이걸 BufferedReader가 정수형으로 바꿀때 에러가 난다.
Scanner nextInt()는 스페이스와 '\r' 사이에 숫자에 해당하는 부분만 처리하기 때문에 문제가 되지 않는다.!