Come impedire che file venga sovrascritto durante la lettura e l'elaborazione con Java?
-
13-09-2019 - |
Domanda
avrei bisogno di leggere ed elaborare un po 'file di grandi dimensioni con Java e mi piacerebbe sapere, se c'è qualche modo ragionevole per proteggere il file che non sarebbe sovrascritto da altri processi, mentre io sto leggendo & l'elaborazione di esso?
Questo è, in qualche modo per renderlo di sola lettura, tenerlo "aperto" o qualcosa del genere ...
Questo dovrebbe essere fatto in ambiente Windows.
br, Touko
Soluzione
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();
per semplicità ho omesso un try enclosng / finally, ma non si dovrebbe nel codice di produzione
Altri suggerimenti
Lavorare per lo più bene, ha dei problemi: come il bloccaggio non sembra essere totalmente assoluta .
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow