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' 사이에 숫자에 해당하는 부분만 처리하기 때문에 문제가 되지 않는다.!

 

'Java' 카테고리의 다른 글

[백준 9465] 스티커 (JAVA)  (0) 2023.04.17
[백준 1890] 점프 (JAVA)  (0) 2023.04.17
[백준 11049] 행렬 곱셈 순서 (JAVA)  (0) 2023.04.13
[백준 1717] 집합의 표현 (JAVA)  (0) 2023.04.11
[백준 21608] 상어 초등학교 (JAVA)  (0) 2023.04.05