Pergunta

Eu preciso ler e processar um pouco grande arquivo com Java e eu gostaria de saber, se há alguma maneira sensata para proteger o arquivo que ele não seria substituído por outros processos, enquanto eu estou lendo & processá-lo?

Isto é, de alguma forma para torná-lo somente leitura, mantê-lo "aberto" ou algo assim ...

Isso seria feito em ambiente Windows.

br, Touko

Foi útil?

Solução

você quer um 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();

para simplificar omiti uma enclosng try / finally bloco, mas você não deve em seu código de produção

Outras dicas

Trabalhando principalmente excelentes, tem alguns problemas: como o bloqueio não parece ser totalmente absoluta .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top