4 Stimmen

Wie kann man verhindern, dass eine Datei beim Lesen und Verarbeiten mit Java überschrieben wird?

Ich muss eine ziemlich große Datei mit Java lesen und verarbeiten und würde gerne wissen, ob es eine sinnvolle Möglichkeit gibt, die Datei zu schützen, damit sie nicht von anderen Prozessen überschrieben wird, während ich sie lese und verarbeite?

Das heißt, eine Möglichkeit, sie schreibgeschützt zu machen, sie "offen" zu halten oder so...

Dies würde in einer Windows-Umgebung geschehen.

br, Touko

10voto

dfa Punkte 110809

Sie möchten eine 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();

Der Einfachheit halber habe ich einen eingeschlossenen try/finally-Block weggelassen, aber das sollten Sie in Ihrem Produktionscode nicht tun

0voto

Touko Punkte 10819

Funktioniert größtenteils gut, hat aber einige Probleme: da die Sperre nicht absolut zu sein scheint .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X