오늘개발일지

[Java] EOF(End of File) 처리 본문

Programming Language/Java

[Java] EOF(End of File) 처리

chlgksdbs 2023. 4. 27. 23:59

EOF

파일의 끝을 나타내는 End of File의 약어로, 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음을 나타내는 용어이다. EOF의 사용법으로는 Scanner, BufferedReader 2가지 방법이 있다.

Scanner

Scanner 클래스에서의 EOF 처리는 문자열인 경우 hasNextLine(), 정수형인 경우 hasNextInt() 메서드를 사용하여 처리한다.

Scanner sc = new Scanner(System.in);

while (sc.hasNextLine()) {
    System.out.println(sc.nextLine());
}

while (sc.hasNextInt()) {
    System.out.println(sc.nextInt());
}


위의 로직은 hasNextLine() 또는 hasNextInt()가 false인 경우 즉, 더 이상 읽을 데이터가 없는 경우 while문을 종료한다.

BufferedReader

BufferedReader 클래스에서의 EOF 처리는 다음과 같이 처리한다.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = "";

while ((input = br.readeLine()) != null) {
    System.out.println(input);
}


위의 로직은 br.readLine()으로 입력 값을 받으면서, 그 값이 null인 경우에 while문을 종료한다.

문제 예시

BOJ_10951 : A + B - 4