[Java 7 oder höher] Verhindert das Auslassen des temporären Löschens von Dateien

Zweck

Verhindert, dass vergessen wird, eine temporäre Datei zu löschen oder zu beenden, ohne die Datei zum Zeitpunkt einer abnormalen Beendigung zu löschen.

Implementierungsbeispiel

Datei mit delete-Anweisung löschen

Temporäre Datei mit Löschanweisung löschen


    Path path = null;
    try {
        //Temporäre Dateierstellung
        path = Files.createTempFile("test", ".tmp");
        OutputStream out = Files.newOutputStream(path);
        String data = "test";
        out.write(data.getBytes());

        //In Datei schreiben
        out.flush();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        //Datei am Ende der Verarbeitung löschen
        Files.deleteIfExists(path);
    }

In dieser Implementierung scheint es, dass es nicht gelöscht werden kann, wenn die JVM abnormal beendet wird.

Löschen Sie die Datei mit DELETE_ON_CLOSE

DELETE_ON_Temporäres Löschen von Dateien mit CLOSE


    Path path = null;
    try {
        //Temporäre Dateierstellung
        path = Files.createTempFile("test", ".temp");
        try (BufferedWriter bw = Files.newBufferedWriter(path, StandardOpenOption.DELETE_ON_CLOSE)) {
            String data = "test";
            //In Datei schreiben
            bw.write(data);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }

Wenn DELETE_ON_CLOSE von StandardOpenOption beim Öffnen einer Datei als Option verwendet wird Dateien werden automatisch gelöscht, wenn der Stream geschlossen wird. Durch die Verwendung der Syntax "Try-with-Resources" werden das Schließen und Löschen von Dateien automatisch ausgeführt, ohne den Abschlussprozess zu implementieren. Die Implementierung ist also ordentlich und es gibt keine Auslassungen.

Recommended Posts

[Java 7 oder höher] Verhindert das Auslassen des temporären Löschens von Dateien
Beispielprogramm für die Eingabe / Ausgabe von Java-Dateien (jdk1.8 oder höher)
[Java] Erstellen Sie eine temporäre Datei
So debuggen Sie Java 9 oder höher remote
Beispiel für eine Gegenmaßnahme gegen NullPointerException (optional) für Java8 oder höher
Lesen Sie den Hinweis zur Dateikopie von Java 1.7 oder höher
Erstellung von Java-Dateien
[Gradle] Generieren Sie Javadoc einschließlich JavaScript in Java 1.8.0_121 oder höher