Debutante en java
Résolu
chaimaa
-
chaimaa -
chaimaa -
A voir également:
- Java scanner is never closed
- What is my movie français - Télécharger - Divers TV & Vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Scanner qr code pc - Guide
- Eclipse java - Télécharger - Langages
1 réponse
Bonjour,
Ce n'est qu'un avertissement, rien de bien grave.
Java s'attend à ce que tout objet qui implémente l'interface Closeable (ce qui est le cas de Scanner) appelle explicitement la méthode close() afin de libérer le flux et éviter de le garder en mémoire pour rien. C'est ce que l'on appelle une perte de ressource ("leak resource" en anglais).
Cependant, dans le cas de System.in je te déconseille de fermer le flux, car il serait ensuite impossible de le rouvrir...
Tu peux mettre une annotation sur la variable sc pour indiquer à Java d'ignorer cet avertissement dans le cas où tu manipules System.in
En revanche, si tu ouvres une autre ressource avec Scanner, par exemple un fichier, il faudra absolument fermer le flux, sinon le fichier restera ouvert pour rien.
Ce n'est qu'un avertissement, rien de bien grave.
Java s'attend à ce que tout objet qui implémente l'interface Closeable (ce qui est le cas de Scanner) appelle explicitement la méthode close() afin de libérer le flux et éviter de le garder en mémoire pour rien. C'est ce que l'on appelle une perte de ressource ("leak resource" en anglais).
Cependant, dans le cas de System.in je te déconseille de fermer le flux, car il serait ensuite impossible de le rouvrir...
Tu peux mettre une annotation sur la variable sc pour indiquer à Java d'ignorer cet avertissement dans le cas où tu manipules System.in
@SuppressWarnings("resource") // System resource should never be closed Scanner sc = new Scanner(System.in);
En revanche, si tu ouvres une autre ressource avec Scanner, par exemple un fichier, il faudra absolument fermer le flux, sinon le fichier restera ouvert pour rien.
Scanner sc = new Scanner(new File("toto.txt")); ... sc.close(); // close file "toto.txt"
chaimaa
@KX vraiment un grand merci pour tes explications, maintenant je comprends la raison de cet avertissement merci encore une fois ..