i remarqué dans un programme java la ligne ci-dessous permet d'ouvrir un fichier et le traiterEn ce qui concerne le fichier java fermeture
BufferedReader inp = new BufferedReader(new FileReader(inputFile));
Dans le javaprogram l'InP n'est pas fermé avant de quitter le programme de la ligne ci-dessous manque
if (inp != null)
try {
inp.close();
} catch (IOException logOrIgnore) {}
Le programme a quitté dans beaucoup de place mais ils n'avaient pas fermé le fichier. Ai-je besoin de mettre cette ligne partout? Si je ne ferme pas le fichier quand le programme se termine ce sera un problème. Le garbage collector ferme-t-il le fichier?
est le BufferedReader transmis à d'autres méthodes ou utilisé dans un seul emplacement? –
Que voulez-vous dire par "programme a des sorties dans beaucoup d'endroits"? Le programme se termine-t-il en utilisant System.exit()? Si oui, l'approche try/finally ne fonctionnera pas. – Rahul
Sur une note connexe, je souhaite parfois que Java ait 'using' (a la C#). Il permet une élimination déterministe avec beaucoup moins de fouillis de code, et encourage la bonne chose. –