2012-08-03 2 views
1

파일을 다른 프로세스에서 수정하거나 쓰는 동안 Java에서 파일을 점진적으로 읽으려고합니다. 따라서 프로세스 "A"가 파일 "X"를 쓰고/로깅하고 다른 프로세스 "B"가 파일 "X"를 점진적으로 읽으려고한다고 가정합니다. 매 1 초마다 (또는 계속해서) 특정 패턴을 찾습니다. java에서이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 나는 RandomAccessFile의 'seek'메소드를 사용할 수 있지만 파일의 쓰기를 방해 할 것인가? 이 작업을 수행하는 더 좋은 방법이 있습니까?동적으로 업데이트되는 동안 Java에서 파일을 점진적으로 액세스합니까?

답변

0

파일의 데이터를 폴링합니다. 읽기 용으로 열면 다른 프로그램이 동시에 파일에 기록하지 못하게 할 수 있습니다.

+0

이 시점에서 필자는 패턴을 찾기 위해 파일을 검색하고 있습니다. 따라서 파일에 대한 다른 프로세스 작성을 방해하지 않습니다. 하지만 그렇게 할 때마다 매번 전체 파일을 읽어야합니다. – Slayer

0

자바 7을 사용할 수 있다면 WatchService ...을 활용할 수 있지만 전체 파일을 구문 분석하지 않아도됩니다.

제가 생각할 수있는 유일한 점은 당신이 마지막으로 있었던 위치를 나타내는 "마커"를 유지하는 것입니다. 다음 번에 파일을 읽으려고하면이 지점으로 건너 뛰고 거기에서 읽을 수 있습니다 (완료되면 마커 업데이트)

관련 문제