Rumah  >  Artikel  >  Java  >  Ralat Java: Ralat Tutup Strim, Cara Membetulkan dan Mengelak

Ralat Java: Ralat Tutup Strim, Cara Membetulkan dan Mengelak

PHPz
PHPzasal
2023-06-24 23:59:091816semak imbas

Ralat Java: Ralat penutupan strim, cara menyelesaikan dan mengelakkannya

Dalam pembangunan Java, strim digunakan semasa memproses fail, rangkaian dan sumber lain: strim input dan strim output. Selepas digunakan, kita perlu menutup sumber aliran yang digunakan. Walau bagaimanapun, kegagalan untuk menutup sumber dengan betul seperti strim fail boleh menyebabkan pelbagai ralat, yang paling biasa ialah ralat penutupan strim. Artikel ini akan menerangkan punca ralat penutupan strim, cara membetulkannya dan cara mengelakkannya daripada berlaku.

Punca ralat penutupan strim

Di Java, strim mesti ditutup selepas digunakan. Ini dicapai dengan memanggil kaedah close() objek aliran. Jika strim tidak ditutup, ia mungkin kekal terbuka, menyebabkan beberapa masalah. Khususnya, jika strim ini dibuka pada satu ketika tetapi tidak ditutup, ia mungkin menggunakan terlalu banyak sumber komputer dalam pelaksanaan berikutnya, yang boleh menyebabkan kebocoran sumber aplikasi, menyebabkan aplikasi ranap dan berjalan perlahan Atau masalah pelik lain berlaku. Oleh itu, ralat penutupan strim mungkin mempunyai kesan yang besar pada operasi biasa aplikasi.

Satu lagi jenis ralat penutupan strim yang biasa ialah cuba memanggil kaedah close() pada strim yang tidak boleh digunakan. Ini boleh menyebabkan Java membuang pengecualian yang tidak ditangkap. Ini kerana strim telah ditutup dan tidak boleh digunakan semula. Menutupnya semula akan menyebabkan ralat.

Cara menyelesaikan ralat penutupan strim

Biasanya, ralat penutupan strim mengakibatkan kaedah Tidak boleh menggunakan pada pengecualian objek tertutup. Ini menunjukkan percubaan untuk beroperasi pada strim yang telah ditutup, yang akan mengakibatkan ralat penutupan strim. Cara biasa untuk menyelesaikan ralat penutupan strim adalah dengan memanggil kaedah close() untuk menutup strim selepas anda selesai menggunakannya. Ini memastikan strim ditutup apabila objek aliran keluar dari skop, sekali gus mengelakkan kebocoran sumber aliran.

Jika anda menggunakan blok pernyataan cuba-dengan-sumber untuk mengurus sumber seperti strim fail, Java akan mengeluarkannya secara automatik selepas kod tersebut dilaksanakan. Blok kod ini akan menutup sumber strim secara automatik Walaupun pengecualian berlaku, ia tidak akan menjejaskan operasi program yang sihat. Kod sampel adalah seperti berikut:

try (FileInputStream inputStream = new FileInputStream("example.txt")) {
   // 执行相关的文件读取操作
} catch (IOException e) {
   // 处理 IO 异常
}

Menggunakan blok kod di atas, tidak kira sama ada blok kod cuba. keluar seperti biasa, ia akan dijamin berada di belakang blok pernyataan cuba Lepaskan sumber inputStream sebelum kod dilaksanakan.

Bagaimana untuk mengelakkan ralat penutupan strim

Untuk mengelakkan ralat penutupan strim, anda perlu membangunkan tabiat pengaturcaraan yang baik dan menutup strim terbuka tepat pada masanya. Atau gunakan blok cuba-dengan-sumber untuk mengurus sumber secara automatik.

Terdapat beberapa amalan terbaik biasa dalam menangani ralat penutupan strim:

  1. Ikuti prinsip DRY, gunakan semula kod sebanyak mungkin dan kurangkan bilangan baris dengan kod pendua. Ini boleh membantu mengekalkan konsistensi kod dan mengelakkan kehilangan beberapa strim semasa menutupnya.
  2. Sebelum menulis kod, tentukan dahulu sumber aliran yang perlu digunakan dan cuba kurangkan bilangan aliran yang digunakan. Ini boleh membantu melihat sama ada terdapat masalah serius dengan strim yang dibuka dalam program.
  3. Gunakan blok pernyataan cuba-dengan-sumber untuk mengurus sumber secara automatik, yang boleh mengelakkan ralat tertentu hilang akibat penutupan strim secara manual.
  4. Tambahkan toleransi kesalahan untuk sumber penstriman. Walaupun anda menggunakan blok cuba-dengan-sumber untuk mengurus sumber secara automatik, anda masih disyorkan untuk menambah toleransi kesalahan pada kod anda untuk mengendalikan ralat penutupan strim.

Ringkasan

Ralat penutupan strim ialah jenis ralat biasa dalam pengaturcaraan Java, yang mudah disebabkan oleh tidak menutup sumber strim terbuka. Untuk mengelakkan ralat penutupan strim, sebaiknya sentiasa mengikut prinsip DRY, menggunakan semula kod, menggunakan sesedikit sumber strim yang mungkin dan menggunakan amalan terbaik seperti blok cuba-dengan-sumber untuk mengurus sumber secara automatik. Ini menambahkan toleransi kesalahan kepada kod anda dan menghalang ralat penutupan strim daripada menjadi kesesakan aplikasi.

Atas ialah kandungan terperinci Ralat Java: Ralat Tutup Strim, Cara Membetulkan dan Mengelak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn