행복을 담는 블로그
[알고리즘] Java EOF(End of File) / 다음 입력이 주어지지 않을 때 본문
EOF란 무엇인가?
End of File의 약자로, 데이터 소스로부터 더이상 읽을 데이터가 없다는 내용이다.
EOF 사용 방법 2가지
Scanner와 BufferedReader 두 가지의 방법이 존재한다.
이 문제를 연습해볼 수 있는 대표적인 문제가 바로 BOJ10951(A + B - 4)와 BOJ10952(A + B - 5) 문제가 있다.
Scanner 클래스
- 마지막 입력이 들어오지 않을 때까지 입력 받기
: 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
- 마지막 줄에 특정 값으로 마지막 줄임을 알려주는 경우
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 |
---|