cari

Rumah  >  Soal Jawab  >  teks badan

java - inputStream关闭了,还有必要关闭InputStreamReader和BufferedReader吗?

PHP中文网PHP中文网2807 hari yang lalu1203

membalas semua(3)saya akan balas

  • PHP中文网

    PHP中文网2017-04-18 09:32:18

    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

    balas
    0
  • 阿神

    阿神2017-04-18 09:32:18

    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"

    balas
    0
  • 怪我咯

    怪我咯2017-04-18 09:32:18

    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

    balas
    0
  • Batalbalas