JAVA

EOF(End of File)란? 자바 커맨드에서 EOF처리하기 (백준 10591 자바 코드)

클로키 2020. 5. 20. 00:44

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();
    }    
}