Language

[Java] EOF(End of File)란?

Jintiago 2022. 3. 26. 19:16

EOF(End of File)란 더 이상 읽을 수 있는 데이터가 없음을 뜻한다.

데이터를 계속 입력 받다가 더 이상 입력되는 데이터가 없을 경우 프로그램의 실행을 중지해야 할 때 이를 어떻게 해결할 수 있을까?

 

EOF 처리 방식은 어떤 클래스로 데이터를 입력 받느냐에 따라 달라진다.

 

1. Scanner 클래스를 사용할 경우

hasNext() 메소드를 통해 데이터 입력이 멈추는 것을 식별할 수 있다.

Scanner sc = new Scanner(System.in);
    
while (sc.hasNext()) {
	System.out.println(sc.nextLine());
}

입력된 데이터가 없으면 while 문을 빠져나온다.

 

2. BufferedReader 클래스를 사용할 경우

이 경우 EOF 처리를 위한 메소드는 존재하지 않으므로 다음과 같이 처리한다.

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

while ((input = br.readLine()) != null) {
	// 로직 전개
}