PS/이론

EOF의 사용 방법을 알아보자 (JAVA)

제이온 (Jayon) 2020. 10. 19.

안녕하세요? 코딩중독입니다.

 

저번 시간에는 입출력의 속도를 빠르게 해 주는 BufferedReader와 BufferedWriter에 대해 알아보았습니다.

 

이번에는 EOF가 무엇인지 알아봅시다.

 

 

EOF는 무엇일까?

EOF는 End of File의 약자로, 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음을 나타내는 용어입니다.

 

알고리즘 문제를 풀 때는 주로 입력값을 얼마나 받을지 명시하지 않을 경우 이 EOF를 사용합니다.

 

예시로는 "10951번 A + B - 4"가 있습니다.

 

 

 

 

위의 사진과 같이, 5개의 입력을 받으라는 것이 아닌, 단순히 입력 쌍을 나열하는 것을 알 수 있습니다.

 

이럴 때에는 입력을 어떻게 받을까요?

 

 

EOF의 사용법

우리는 입력을 받을 때 2가지 방식을 사용합니다.

 

첫 번째는 Scanner이고, 두 번째는 BufferedReader입니다.

 

하나씩 살펴봅시다.

 

 

 

Scanner 클래스

 

Scanner 클래스에서의 EOF는 단순합니다. 

 

바로, hasNext() 메소드를 사용하는 것입니다.

 

이것은 입력된 토큰이 있으면 true를 반환하고, 그렇지 않을 경우 false를 반환합니다.


따라서, EOF를 할 때에는 아래와 같이 코드를 작성하면 됩니다.

 

 

 

 

 

BufferedReader 클래스

 

BufferedReader는 Scanner와 달리 EOF를 처리하는 내장 함수는 없습니다.

 

그래서 BufferedReader는 아래와 같이 EOF를 처리합니다.

 

 

 

 

br.readLine()으로 입력값을 계속 읽되, 읽은 값이 null이 되면 반복문을 종료하는 방식입니다.

 

 

정리

지금까지 PS를 할 때, EOF를 어떻게 처리하는지 알아보았습니다.

 

이번 글까지 찬찬히 학습하셨다면, 알고리즘 문제를 풀면서 입출력때문에 막히는 일은 거의 없을 것입니다.

 

물론, 문자열을 자르는 과정도 필요하지만, 그 내용은 Java - Advanced 카테고리에서 다루었으니, 필요하시면 참고하시길 바랍니다.

 

 

[Java/Advanced] - 문자열을 어떻게 자를 수 있을까? - StringTokenizer 편 (JAVA)

 

 

이제, 아주 기초적인 준비는 끝났습니다.

 

다음 시간부터는 탐색 알고리즘에 대해 알아봅시다!

 

 

지적 혹은 조언 환영합니다! 언제든지 댓글로 남겨주세요.

댓글

추천 글