Comment éviter d'être fichier lors de la lecture et de substitution de traitement avec Java?
-
13-09-2019 - |
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
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