Je travaille dans une application utilisant Tomcat et des servlets.Comment supprimer un fichier txt lors de l'utilisation de Tomcat et de servlets?
Il existe une servlet (audioProcess) qui reçoit le nom d'un fichier mp3 qui est lu. Cette servlet traite également le fichier mp3 et stocke le résultat dans un fichier txt. Le contenu de ce txt sera remplacé lorsque le servlet audioProcess sera à nouveau invoqué (avec un fichier mp3 différent).
Chaque fois que cette servlet est invoquée, je supprime le txt et j'en crée un nouveau (contenant des informations concernant le fichier mp3). Le nom du fichier txt est toujours le même.
Mon problème est que le fichier txt n'est jamais supprimé. Ce que je fais pour supprimer le fichier est:
File a = new File(path_clasificacion);
if(a.exists())
{
boolean erased = a.delete();
out.println("erased?" + erased);
}
La première fois que j'invoque le servlet le fichier txt est effacé. Seulement la première fois. Après avoir supprimé le fichier txt, j'essaie d'écrire les nouvelles informations dans un fichier txt portant le même nom (stocké dans le même chemin). Ce qui se passe, c'est que l'ancien fichier n'est pas effacé, les nouvelles informations sont ajoutées au fichier. Pourquoi ne puis-je pas supprimer le fichier?
Merci
Le fichier txt est généré en utilisant ce code:
FileWriter f = null;
PrintWriter pw = null;
try
{
f = new FileWriter(path,true);
pw = new PrintWriter(f);
pw.println(info);
} catch (Exception e) {e.printStackTrace();
finally
{
f.close();
}
J'ai ajouté à ma description initiale la façon dont le fichier txt est généré. Je pense que la première fois que le fichier est vraiment supprimé, le problème est que immédiatement j'essaie de le créer à nouveau avec de nouvelles informations et je ne le ferme pas correctement. – dedalo
OK, je comprends. Peut-être que vous devriez fermer 'pw' et pas' f'. Ou si vous voulez être très sûr, les deux, dans cet ordre. –
J'ai examiné toutes les méthodes utilisées et j'ai trouvé que je n'avais pas fermé un FileReader. Maintenant qu'il est corrigé, cela fonctionne correctement. Merci pour votre conseil. – dedalo