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.
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.
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