Bonjour,
tout est dans le titre, ce que je passe en paramètre de la méthode, c'est un objet de type File, et je ne vois pas comment fermer ce fichier. Je ne trouve pas de méthode close().
Merci à vous :)
Version imprimable
Bonjour,
tout est dans le titre, ce que je passe en paramètre de la méthode, c'est un objet de type File, et je ne vois pas comment fermer ce fichier. Je ne trouve pas de méthode close().
Merci à vous :)
Salut,
La classe File n'est qu'une représentation d'un fichier. Elle n'ouvre rien du tout !
Tu n'as donc rien à faire...
C'est la méthode parse() qui va ouvrir le fichier, et c'est donc à elle de gérer proprement sa fermeture.
a++
ben je veux bien mais quand j'essaie de parser un fichier xml et que ça génère une exception, si je veux modifier mon fichier xml avec un editeur de texte quelconque, je ne peux pas. Car je pense que le fichier est toujours utilisé par mon application.
Comment je peux rendre mon fichier à nouveau utilisable par une appli exterieur sans devoir fermer mon appli ?
Hum dans ce cas le code de la méthode parse() est incorrect :(
Le mieux serait alors d'ouvrir le flux toi-même :
a++Code:
1
2
3
4
5
6 FileInputStream input = new FileInputStream(fichier); try { parseur.parse(input, gestionnaire); } finally { input.close(); }
Es-tu sûr de ne pas utiliser ce fichier autre part ?
a++
Re-bonjour à tous,
existe-t-il un moyen en java de récupérer tous les verrous existants sur un fichier, et d'éventuellement déceler ceux qui proviennent de java, et donc de les supprimer ? cela serait une façon de résoudre mon problème peut-être...
Merci à vous
Tu as un exemple de code minimum qui reproduit le problème ?
a++
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 try{ parseur.parse(input, gestionnaire); } catch(ClassCastException e){ lineNumber = ((ModelHandler)gestionnaire).getLocator().getLineNumber(); isThereClassCastExceptionProduced = true; JOptionPane.showMessageDialog(null, "Problème dans le fichier XML à la ligne " + lineNumber, Constantes.ERREUR, JOptionPane.ERROR_MESSAGE); //on vide le model, on ferme l'application controller.notifyCloseApplication(); } finally { input.close(); }
Justement je n'arrive pas à reproduire le problème : le fichier est bien fermé !
Il faudrait un code compilable qui permettrait de mettre le problème en évidence.
a++