[JAVA] EOF(End of File) 처리하기

2024. 2. 19. 11:43언어(Language)/JAVA

EOF(End of File)이란?

EOF는 End of File의 약자로, 데이터 소스로부터 더 이상 읽을 수 없는 데이터가 없음을 나타내는 용어이다.

EOF는 알고리즘 문제를 풀 때 입력값을 얼마나 받을지 명시하지 않을 경우 사용한다.

 

 

그 예로 백준의 '10951번 A + B - 4' 가 있다.

위의 문제는 단순히 입력을 받고 출력하는 문제이다.


EOF(End of File)의 사용법

자바에서는 대표적인 입력 클래스로 Scanner, BufferedReader가 있는데 각각의 EOF 처리 방법은 다음과 같다.

 

 

1. Scanner 클래스

 

Scanner 클래스에서 EOF(End of File)를 사용하려면 hasNext()를 사용하면 된다.

이것은 입력된 토큰이 있으면 true를 반환하고, 그렇지 않을 경우 false를 반환한다.

 

예시

Scanner sc = new Scanner(System.in);

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

while(sc.hasNext()) {
	System.out.println(sc.next());
}

 

 

2. BufferedReader 클래스

 

BufferedReader 는 Scanner와 달리 EOF를 처리하는 내장 함수가 존재하지 않는다.

따라서 BufferedReader는 다음과 같이 EOF를 처리한다.

 

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

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

 

br.readLine()으로 입력값을 받다, 읽은 값이 null이 되면 반복문을 종료하는 방식이다.