Je recherche un moyen sûr de créer un fichier temporaire en Java. Par sûr, je veux dire ce qui suit:
- Le nom doit être unique, même dans des conditions de concurrence potentielles (par exemple, un autre thread appelle la même fonction en même temps, ou un autre processus exécute ce code simultanément)
- Le fichier doit être privé, même dans des conditions de concurrence potentielles (par exemple, un autre utilisateur essaie de chmod fichier à un débit élevé)
- Je peux lui dire de supprimer le fichier, sans que je doive faire une suppression générique, et risquer de supprimer le mauvais fichier
- Idéalement, je dois vous assurer que le fichier est supprimé, même si une exception est levée avant que j'aie la chance de
- Le fichier doit être par défaut à un emplacement sain (par exemple, le répertoire tmp spécifié par la JVM, par défaut le répertoire temporaire du système)
java
temporary-files
SRobertJames
la source
la source
File f = File.createTempFile(prefix, extension)
. Il sera placé dans le répertoire temporaire. Et avecf.deleteOnExit()
elle sera automatiquement supprimée à la sortie.Réponses:
Utilisez
File.createTempFile()
.Créera un fichier dans le répertoire temporaire, comme:
la source
tempFile.delete()
en plus dudeleteOnExit
(puisque je ne veux pas avoir des hordes de fichiers temporaires qui traînent avant de quitter)?Depuis Java 7, il existe la nouvelle API de fichier "NIO2" qui contient de nouvelles méthodes pour créer des fichiers et des répertoires temnp. Voir
par exemple
ou
la source