음, 좀 이상한? 것이 있습니다.
제가 저번에 그 곱하기 게임 문제를 여쭤볼 때, EOF는 boolean의 false처리로 자바에서 처리를 합니다. 그런데, 여기선 false로 쓰면 안되고, 그냥 -1을 넣어야 정답이 인정이 됩니다. 제가 자바의 EOF를 잘못 알고있는 것인가요 아니면 그냥 채점기준이 정수 -1이기 때문인가요?
구글에 검색하니 영어 사이트는 무슨 말하는 지 모르겠고, 한국어 싸이트는 그냥 null처리를 하는 것도 있고 헷갈립니다.
자바의 EOF를 잘못 알고있는 것입니다.
아래는 https://community.oracle.com/message/4871422 에서 나온 소스코드입니다.
File file = new File(pathInfo);
FileReader inputRead = new FileReader(file);
BufferedReader bufRead = new BufferedReader(inputRead);
bufRead.skip(file.length());
System.out.println(bufRead.read());
이렇게 되면 -1이 출력됩니다.
EOF가 무엇의 약자인지 아십니까? End Of File 입니다.
EOF값을 정확하게 알아내기 위해서는 File로 값을 읽어야하지요..
그리고 그 결과로는 -1이 출력됩니다.
이전 질문에서 나왔던 .hasNext()는 함수입니다. 다음에 읽을 내용이 있냐 없냐를 알려주는 함수이지요.
즉, EOF에 도달하지 않았으면 true, EOF에 도달했으면 false를 출력해주는 함수라서 false가 나왔을 뿐입니다. false == EOF라는 뜻이 아니죠