Jika soalannya ialah: BufferedReader ditutup, adakah perlu untuk menutup InputStreamReader dan InputStream? , maka masalah ini adalah perkara biasa...
Strim dan pembaca dalam pakej io Java kedua-duanya menggunakan corak penghias. Anda hanya perlu memanggil kaedah tutup penghias paling luar, dan ia juga akan menutup aliran atau pembaca yang dihiasnya.
Jika itu tidak berjaya, buka kod sumber BufferedReader dan lihat kaedah tutup Anda akan mendapati ia menutup pembaca yang dihias dalam kaedah ini
Tidak kira betapa sukarnya, saya mengesyorkan artikel berikut, yang mungkin dapat menyelesaikan keraguan anda "Java IO: Streams, dan penerapan corak penghias padanya"
Hanya panggil dekat paling luar() terus
kemas kini:
http://docs.oracle.com/javase/8/docs/api/java/io/BufferedReader.html#close--
http://docs.oracle.com/javase/8/docs/api/java/io/InputStreamReader.html#close--
Ia adalah rantai anda menutup yang paling luar, dan yang paling luar menutup yang dalam, dan yang dalam menutup yang dalam
Sudah tentu, jika anda berkeras bahawa penutupan mungkin gagal, anda mesti melakukannya, saya tidak dapat menahannya
Jika soalannya ialah: BufferedReader ditutup, adakah perlu untuk menutup InputStreamReader dan InputStream? , maka masalah ini adalah perkara biasa...
Strim dan pembaca dalam pakej io Java kedua-duanya menggunakan corak penghias. Anda hanya perlu memanggil kaedah tutup penghias paling luar, dan ia juga akan menutup aliran atau pembaca yang dihiasnya.
Jika itu tidak berjaya, buka kod sumber
Tidak kira betapa sukarnya, saya mengesyorkan artikel berikut, yang mungkin dapat menyelesaikan keraguan anda "Java IO: Streams, dan penerapan corak penghias padanya"BufferedReader
dan lihat kaedah tutup Anda akan mendapati ia menutup pembaca yang dihias dalam kaedah iniAnda perlu menutup semuanya, satu demi satu mengikut urutan, sebaik-baiknya pada akhirnya
Tahap terakhir dibuat dahulu, tahap pertama dibuat terakhir