Comment éviter d'être fichier lors de la lecture et de substitution de traitement avec Java?

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

Question

Je aurais besoin de lire et traiter le fichier un peu grand avec Java et je voudrais savoir, s'il y a une façon sensée pour protéger le fichier qu'il ne serait pas écrasé par d'autres processus pendant que je lis & le traiter?

C'est, d'une certaine façon de faire en lecture seule, garder « ouvert » ou quelque chose ...

Ceci sera fait dans un environnement Windows.

br, Touko

Était-ce utile?

La solution

vous voulez un 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();

pour des raisons de simplicité, j'ai omis un essai de enclosng / bloc finally, mais vous ne devriez pas dans votre code de production

Autres conseils

la plupart du temps de travail bien, eu quelques problèmes: que le verrouillage ne semble pas être tout à fait absolue.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top