Study/Programming Language

[Java] Java에서 EOF 다루는 방법

찬 주 2023. 9. 25. 23:04

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

 

10951번: A+B - 4

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

보통 문제에서 N 또는 M 등을 먼저 입력 받은 후 N개의 수를 입력받는 식이지만, 백준 10951 문제처럼 몇 개를 입력받을지 명시하지 않는 문제가 가끔 존재한다. 이럴때 사용하는 것이 EOF이다.

 

EOF

EOF는 End of File의 약자로, 파일에서 더 이상 읽을 데이터가 없을 때 사용한다. 코테 좀 준비했다면 알겠지만 java에서는 Scanner보단 BufferedReader를 사용해서 입력을 받으므로 BufferedReader를 사용해 EOF 처리하는 방법을 살펴본다. (Scanner로도 처리할 수 있다!)

 

BufferedReader를 사용한 EOF 처리

보통 BufferedReader를 사용해 입력을 받을 때 readLine() 함수를 사용한다. 한 줄씩 읽는 함수인데, 입력이 끝날 때 null을 반환한다. 따라서 아래와 같이 처리하면 된다.

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

String input = "";
while ( (input = br.readLine()) != null) {
	...
}