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

È stato utile?

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
scroll top