Maison > Questions et réponses > le corps du texte
PHP中文网2017-04-18 09:32:18
Appelez simplement le close() le plus externe directement
mise à jour :
http://docs.oracle.com/javase/8/docs/api/java/io/BufferedReader.html#close--
Ferme le flux et libère toutes les ressources système qui lui sont associées
http://docs.oracle.com/javase/8/docs/api/java/io/InputStreamReader.html#close--
Ferme le flux et libère toutes les ressources système qui lui sont associées
C'est une chaîne. Vous fermez celle de l'extérieur, et celle de l'extérieur ferme celle de l'intérieur, et celle de l'intérieur ferme celle de l'intérieur
Bien sûr, si vous insistez sur le fait que l'arrêt peut échouer, vous devez finalement le faire, je n'y peux rien
.阿神2017-04-18 09:32:18
Si la question est : BufferedReader est fermé, est-il nécessaire de fermer InputStreamReader et InputStream ? , alors ce problème est normal...
Le flux et le lecteur du package io de Java utilisent tous deux le modèle décorateur. Il vous suffit d'appeler la méthode close du décorateur le plus externe, et il fermera également le flux ou le lecteur qu'il décore.
Si cela ne fonctionne pas, ouvrez le code source de BufferedReader
et regardez la méthode close Vous constaterez qu'elle ferme le lecteur qu'elle décore dans cette méthode
Peu importe la difficulté, je vous recommande l'article suivant, qui pourra peut-être résoudre vos doutes "Java IO : Streams et l'application du modèle décorateur dessus"
怪我咯2017-04-18 09:32:18
Il faut tous les fermer, un par un dans l'ordre, de préférence en fin
finally{
try{
br.close();
isr.close();
is.close();
}catch(Exception e){
......
}
}
Le dernier niveau créé en premier, le premier niveau créé en dernier