2016-09-26 2 views
-1

Ich habe ein Problem mit dem Löschen der Datei, nachdem ich dazu geschrieben habe. Hier ist der Code des Schreibens es:Kann Datei nicht löschen, nachdem ich darauf geschrieben habe

String xml = "blablaxml"; 
Path file = Paths.get("file.xml"); 
Files.write(file, xml.getBytes()); 

Hier möchte ich es löschen:

Files.deleteIfExists(file); 

Der Fehler:

java.nio.file.FileSystemException: file.xml: The process cannot access the file because it is being used by another process. 

ich den Code debuggen und kurz vor versuchen, zu löschen Die Datei, in der ich den Microsoft Process Explorer verwendet habe, und die Datei wird von keinem Prozess verwendet, daher verstehe ich den Fehler nicht.

+0

Nach dem Erstellen der Datei haben Sie es mit einer beliebigen Software geöffnet? –

+0

Wenn Sie wirklich java.nio verwenden müssen, dann schreiben Sie im Sync-Modus. 'Files.write (Datei, xml.getBytes(), StandardOpenOption.SYNC);' –

+0

Ich habe es nicht mit irgendeiner Software geöffnet, und wenn ich das StandardOpenOption.SYNC verwende, bekomme ich NoSuchFileException – Zbrana

Antwort

-1

Die Fehlermeldung ist klar, Sie können die Datei nicht löschen, da sie von einem anderen Prozess oder Thread verwendet wird. Stellen Sie sicher, dass Sie den Dateistream schließen, nachdem Sie vor dem Löschen in die Datei geschrieben haben. Siehe How to create a file and write to a file in Java?

+0

Er benutzt java.nio. –

+0

Er kann den Link in meiner Antwort sehen, um zu sehen, wie man sonst in eine Datei schreibt und schließt. – cdaiga

+0

Downvoting, weil er bereits das tut, was in der besten Antwort des Posts beschrieben ist, unter dem Titel 'Java7 + Benutzer - Erstellen einer Binärdatei' –

Verwandte Themen