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:
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!