카테고리 없음
[Java] 자바의 EOF(End Of File)
진진브레드
2024. 9. 2. 21:00
알고리즘을 풀다보면
가끔 입력값의 개수가 정해지지 않은 문제들이 있다.
백준의 5639번 이나 10951번을 예로 들 수 있겠다.
해당 문제는 BufferedReader로 사용자의 입력을 계속 받다가,
입력 마지막에 개행 문자를 입력하여 빈 문자열을 출력하고, (개행 문자를 입력한다고, null 을 반환하는 게 아니다.)
그 이후 스트림은 끝에 도달하게 돼(더이상 읽을 데이터가 없다는 의미) null 을 반환한다.
자바 공식 문서를 보자.
스트림의 끝에 도달하게 되면 null을 반환한다고 쓰여있다.
따라서 해당 문제는
아래와 같은 코드로 입력을 처리할 수 있다.
...
while (true) {
String str = br.readLine();
// 스트림의 끝에 도달하면 readLine은 null을 반환한다.
// 혹여, str을 숫자형으로 변환하는 경우, isEmpty로 NumberFormatException 을 방지한다.
if (str == null || str.isEmpty()) {
break;
}
...
}
...