EOF는 입력의 개수가 주어지지 않고 입력값만 들어오는 경우, 입력(파일)이 끝났다는 것을 어떻게 알아낼 것이냐에 대한 개념이다. 개수를 모르므로 FOR문보다는 WHILE문을 이용한다.
EOF는 간단하게 처리할 수 있다. 새롭게 라인을 읽어왔는데 그 값이 null이면 더 이상 읽을 것이 없다는 의미이므로 루프를 끝내면 된다. (예제 코드 참고)
자바에서 커맨드라인을 이용해 입력값을 주는 경우, CTRL+Z를 누른 뒤 엔터키를 누르면 입력이 끝난 것으로 처리된다.
< 백준 10591번 A+B - 4 정답 코드 >
import java.io.*;
class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String line = br.readLine();
int pos,a,b = 0;
while(line != null){ // EOF handling
pos = line.indexOf(" ");
a = Integer.parseInt(line.substring(0,pos));
b = Integer.parseInt(line.substring(pos+1));
bw.write(Integer.toString(a+b));
bw.newLine();
line = br.readLine();
}
bw.flush();
}
}
'JAVA' 카테고리의 다른 글
자바 최솟값, 최댓값 구하기 (백준 배열 2562, 10818 코드) (0) | 2020.05.22 |
---|---|
두 번째로 큰 수를 출력하는 간단한 프로그램 (백준 10871 자바) (0) | 2020.05.22 |
while문 쓰는 팁 (백준 11021 자바) (0) | 2020.05.14 |
자바 1부터 N까지 출력하기 (백준 2741번 N 찍기) (0) | 2020.05.07 |
백준 자바 2439 별 찍기 2, 10871 X보다 작은 수 풀이 (0) | 2020.04.29 |