supprimer le fichier temporaire en java
Je suis la création de fichier temporaire en java, mais je ne suis pas en mesure de le supprimer. C'est le code que j'ai écrit:
temp = File.createTempFile("temp", ".txt");
temp.deleteOnExit();
fileoutput = new FileWriter(temp);
buffout = new BufferedWriter(fileoutput);
- Reformulez votre question sans txtspk et je vais y réfléchir.
Vous devez vous connecter pour publier un commentaire.
Ajoutez le code suivant (après vous avez terminé vos opérations avec le fichier):
Tant que certains cours d'eau sur le fichier est ouvert, il est verrouillé (au moins sur les fenêtres-la mise en œuvre de la JVM). Il ne peut donc pas être supprimé.
Il est de bonne pratique de toujours vérifier si ouvert toutes les ruisseaux obtenir refermé après usage, parce que c'est un mauvais souvenir-fuite-de la situation. Votre application peut même manger tous les fichiers disponibles-poignées, qui peut conduire à un système inutilisable.
Il y a un bug en disant que si le fichier est ouvert par filewriter ou quoi que ce soit, il ne sera pas supprimé. Sur windows. Vérifiez si vous fermez votre fichier écrivains.
Une autre solution serait d'installer un ShutdownHook qui permettrait de supprimer manuellement le fichier.
Vous devez arrêter une machine virtuelle proprement pour la
deleteOnExit
fonctionne correctement (je soupçonne). SurUNIX
unkill
serait un arrêt propre (c'est à dire laShutdownHooks
serait traitée), alors qu'unkill -9
serait plus comme un forcer à quitter.deleteOnExit
fonctionne bien pour moi!Code pour fermer la inpustream et outputstream: