[Java] EOF (End Of File)

2025. 3. 8. 23:45·Language/JAVA

EOF란?

End Of File, 즉 파일의 끝으로, 더 이상 읽을 수 있는 데이터가 존재하지 않는 것를 말한다.

이를 처리하는 방법은 입력의 종류에 따라 있으며, 그 중 Scanner와 BufferedReader의 처리 방법에 대해 설명할 것이다.

 

1️⃣ Scanner 사용

아래와 같이 int 타입을 받을 때, hasNextInt() 메소드를 사용해서 처리할 수 있다.

import java.util.Scanner;

public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextInt()) {
            System.out.println(sc.nextInt());
        }
        sc.close();
    }
}

 

IDE나 터미널에서는 공백(" ")을 받거나 Enter(\n)를 쳐도 반복문이 종료되지 않는다. 즉, 데이터로 받아들인다는 말이다.

따라서 반복문을 종료시키기 위해 아래의 두 가지 방법으로 hasNextInt()에 EOF를 입력할 수 있다.

  1. int 타입이 아닌 문자열 등의 다른 타입을 입력
  2. 윈도우의 경우 ctrl + Z, 리눅스 계열의 경우 ctrl + D 입력

 

2️⃣ BufferedReader 사용

BufferedReader의 경우 null을 반환한다. 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String args[]) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str;
        while ((str = br.readLine()) != null) {
            ...
        }
        br.close();
    }
}

 

IDE나 터미널에서 BufferedReader로 null을 반환하기 위해서는 Scanner와 같이 EOF를 받아야 하기 때문에 윈도우의 경우 ctrl + Z, 리눅스 계열의 경우 ctrl + D 를 입력해야 한다.

 

더 알아보기

백준 10951번 A+B - 4

https://www.acmicpc.net/problem/10951

 


 

🔗 참고자료

  • https://st-lab.tistory.com/40
  • https://velog.io/@haramiee/Java-EOF-End-Of-File

'Language > JAVA' 카테고리의 다른 글

[Java] Integer Overflow(정수형 오버플로우)  (0) 2025.03.15
[Java] Scanner vs BufferedReader  (0) 2025.03.09
[JAVA] JDK 삭제하기  (0) 2025.01.14
'Language/JAVA' 카테고리의 다른 글
  • [Java] Integer Overflow(정수형 오버플로우)
  • [Java] Scanner vs BufferedReader
  • [JAVA] JDK 삭제하기
이서라다
이서라다
  • 이서라다
    개발일지
    이서라다
  • 전체
    오늘
    어제
    • 전체 보기 (79)
      • 내일배움캠프 (21)
        • TIL (21)
      • 프로그래머스 (23)
      • Algorithm (2)
      • BackEnd (0)
        • Spring (0)
      • Language (4)
        • JAVA (4)
      • Git (2)
      • 백준 - Java (25)
        • 입출력과 사칙연산 (6)
        • 반복문 (8)
        • 1차원 배열 (1)
        • 문자열 (7)
        • 2차원 배열 (1)
        • 조합론 (1)
        • 정렬 (1)
      • IDE (1)
        • IntelliJ (1)
      • 티스토리 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    jdk삭제
    내일배움캠프
    til
    티스토리스킨
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이서라다
[Java] EOF (End Of File)
상단으로

티스토리툴바