행복을 담는 블로그

[알고리즘] Java EOF(End of File) / 다음 입력이 주어지지 않을 때 본문

Algorithm

[알고리즘] Java EOF(End of File) / 다음 입력이 주어지지 않을 때

hyun0zin 2024. 9. 9. 17:18

EOF란 무엇인가?

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



EOF 사용 방법 2가지

Scanner와 BufferedReader 두 가지의 방법이 존재한다.

이 문제를 연습해볼 수 있는 대표적인 문제가 바로 BOJ10951(A + B - 4)와 BOJ10952(A + B - 5) 문제가 있다.



Scanner 클래스

  1. 마지막 입력이 들어오지 않을 때까지 입력 받기
    : hasNext() 메소드 사용하기

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

Scanner sc = new Scanner(System.in);

        while (sc.hasNext()) {
            int A = sc.nextInt();
            int B = sc.nextInt();

            System.out.println(A + B);

        }

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

 

  1. 마지막 줄에 특정 값으로 마지막 줄임을 알려주는 경우
Scanner sc = new Scanner(System.in);

        while (sc.hasNext()) {
            int A = sc.nextInt();
            int B = sc.nextInt();


            if(A == 0) {
                break;
            }
            System.out.println(A + B);

        }

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



BufferedReader 클래스

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

br.readLine()을 통해 한 줄씩 값을 읽어오는데, 이때 더 이상 읽을 값이 없다(== null이 들어온다)면 while문이 종료된다.

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

while((str = br.readLine()) != null){
    // 이후 로직 진행
}

'Algorithm' 카테고리의 다른 글

[알고리즘] BufferedReader와 StringTokenizer 사용법  (0) 2024.09.12