47 votes

Dois-je fermer un InputStream en Java ?

Mon code est :

 InputStream confFile=classLoader.getResourceAsStream("myconffile.properties");

Dans les docs :

La méthode close de InputStream ne fait rien.

Cela signifie-t-il que je n'ai pas besoin de fermer InputStream ?

33voto

Boris Strandjev Points 18480

Vous devez fermer le flux d'entrée, car le flux renvoyé par la méthode que vous mentionnez est en fait FileInputStream ou une autre sous-classe de InputStream qui contient un descripteur pour un fichier. Si vous ne fermez pas ce flux, vous avez une fuite de ressources.

22voto

Michael Borgwardt Points 181658

Non, cela ne signifie pas que - parce que InputStream est une classe abstraite et getResourceAsStream() renvoie une sous-classe concrète dont la close() fait quelque chose - le plus important est de libérer un fichier manipuler.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X