java - inputStream关闭了,还有必要关闭InputStreamReader和BufferedReader吗?
PHP中文网
PHP中文网 2017-04-18 09:30:18
0
3
1195
PHP中文网
PHP中文网

认证0级讲师

membalas semua(3)
Ty80

Hanya panggil dekat paling luar() terus


kemas kini:

http://docs.oracle.com/javase/8/docs/api/java/io/BufferedReader.html#close--

Menutup strim dan mengeluarkan sebarang sumber sistem yang berkaitan dengannya

http://docs.oracle.com/javase/8/docs/api/java/io/InputStreamReader.html#close--

Menutup strim dan mengeluarkan sebarang sumber sistem yang berkaitan dengannya

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 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"

刘奇

Anda perlu menutup semuanya, satu demi satu mengikut urutan, sebaik-baiknya pada akhirnya

finally{
    try{
        br.close();
        isr.close();
        is.close();
    }catch(Exception e){
        ......
    }
}

Tahap terakhir dibuat dahulu, tahap pertama dibuat terakhir

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan