2014-06-23 2 views
0

현재 로그 파일을 검사하여 현재 에 기록 된 로그 파일을에 기록한 다음 해당 데이터를 서버에 업로드해야합니다. 파일은 매시간 변경됩니다. 나는 스캐너의 next() 메소드가 표준 입력을위한 것처럼 파일의 끝에 대해 ​​블록하는지 궁금해했다. 나는이 정보를 Google 검색에서 온라인으로 찾을 수 없었다.파일 입력시 Java의 Scanner가 차단합니까?

감사합니다.

+1

약 5 분 안에 쉽게 시도 할 수 있습니다. –

+1

바퀴를 다시 발명 할 필요가 없습니다. [Commons IO'Tailer'] (http://commons.apache.org/proper/commons-io/apidocs/org /apache/commons/io/input/Tailer.html) –

+0

Duncan에게 도움을 주셔서 감사합니다. – user1946492

답변

2

기술적으로 정답 : 예, 스캐너는 입력시 차단 될 수있는 표준 IO 호출을 사용합니다. 데이터를 사용할 수 없지만 파일의 끝에 도달하지 않은 경우이 작업이 수행됩니다. 이것이 소켓에서 읽는 경우에 해당됩니다.

당신이 찾고있는 대답 : 설명하는 상황에서 스캐너가 파일의 끝에 도달했기 때문에 스캐너가 차단되지 않습니다. 파일이 나중에 쓰여지더라도 파일의 끝을 읽으려고하면 EOF가 생성됩니다.

+0

정확하고 완만 한 응답을 보내 주셔서 감사합니다. – user1946492

0

파일의 끝에 도달하면 파일이 변경 될 수 있음을 알 수 없기 때문에 파일의 끝에 도달하면 완료된 것으로 가정하므로 이럴 가능성이 없습니다.

또한 스캐너의 소스 코드를 다시 확인하는 것이 좋습니다.