Ich suche nach einer sicheren Möglichkeit, eine temporäre Datei in Java zu erstellen. Mit sicher meine ich Folgendes:
- Der Name sollte auch unter möglichen Rennbedingungen eindeutig sein (z. B. ruft ein anderer Thread zur gleichen Zeit dieselbe Funktion auf oder ein anderer Prozess führt diesen Code gleichzeitig aus).
- Die Datei sollte auch unter potenziellen Rennbedingungen privat sein (z. B. versucht ein anderer Benutzer, die Datei mit hoher Geschwindigkeit zu ändern).
- Ich kann es anweisen, die Datei zu löschen, ohne dass ich generisch löschen muss, und riskieren, die falsche Datei zu löschen
- Im Idealfall sollte sichergestellt werden, dass die Datei gelöscht wird, auch wenn eine Ausnahme ausgelöst wird, bevor ich die Möglichkeit dazu bekomme
- Die Datei sollte standardmäßig einen vernünftigen Speicherort haben (z. B. das von der JVM angegebene tmp-Verzeichnis, standardmäßig das temporäre Systemverzeichnis).
File f = File.createTempFile(prefix, extension)
. Es wird in das temporäre Verzeichnis gestellt. Undf.deleteOnExit()
damit wird es beim Beenden automatisch gelöscht.