Java를 읽고 처리 할 때 파일이 재정의되는 것을 방지하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1271948

문제

Java로 다소 큰 파일을 읽고 처리해야하며, 파일을 읽고 처리하는 동안 다른 프로세스에 의해 덮어 쓰지 않는 파일을 보호하는 현명한 방법이 있는지 알고 싶습니다.

즉, 읽기 전용으로, "열린"또는 무언가를 유지하는 방법은 ...

이것은 Windows 환경에서 이루어집니다.

Br, touko

도움이 되었습니까?

해결책

당신은 원합니다 Filelock:

FileChannel channel = new RandomAccessFile("C:\\foo", "rw").getChannel();

// Try acquiring the lock without blocking. This method returns
// null or throws an exception if the file is already locked.
FileLock lock = channel.tryLock();

// ...  

// release it
lock.release();

Simplicity를 위해 enclosng 시도/마침내 블록을 생략했지만 생산 코드에는 안됩니다.

다른 팁

대부분 잘 작동하고 몇 가지 문제가 있습니다. 잠금이 완전히 절대적으로 보이지는 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top