Rumah > Java > javaTutorial > Penyelesaian kepada pengecualian FileNotFoundException dalam Java

Penyelesaian kepada pengecualian FileNotFoundException dalam Java

WBOY
Lepaskan: 2023-06-25 10:33:20
asal
4357 orang telah melayarinya

FileNotFoundException ialah salah satu pengecualian biasa di Java. Ini menunjukkan bahawa percubaan telah dibuat untuk membuka fail, tetapi fail itu tidak wujud atau tidak boleh dibaca. Contohnya, jika FileNotFoundException berlaku apabila membaca fail menggunakan kelas FileInputStream, ini bermakna program Java tidak dapat mencari fail atau fail tidak tersedia. Berikut akan memperkenalkan sebab dan penyelesaian pengecualian FileNotFoundException.

  1. Analisis Sebab

Pengecualian FileNotFoundException biasanya disebabkan oleh sebab berikut:

Fail tidak wujud: Program ini cuba membuka fail yang tidak wujud, yang akan menyebabkan pengecualian FileNotFoundException dibuang.

Fail ialah direktori: Cuba untuk membuka direktori dan bukannya fail juga akan menyebabkan pengecualian FileNotFoundException.

Bacaan fail dilarang oleh tetapan kebenaran: Pengecualian ini akan dibuang apabila cuba membaca fail atau fail sistem tertentu tanpa kebenaran baca.

Fail sedang diduduki: Cuba membuka fail yang sedang diduduki oleh proses lain juga akan menyebabkan pengecualian ini dibuang.

  1. Penyelesaian

Apabila FileNotFoundException berlaku, kita perlu mengambil penyelesaian berikut:

2.1 Semak laluan fail

Punca paling biasa pengecualian ini ialah fail tidak wujud, jadi anda boleh menggunakan wujud( daripada kaedah kelas Fail ) menyemak sama ada fail itu wujud.

Fail fail = new File("filename.txt");
if(file.exists()){

//do something
Salin selepas log masuk
Salin selepas log masuk

}lain{

//handle exception
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}

2.2 Semak kebenaran akses fail

Jika fail wujud, tetapi kami Jika fail tidak boleh diakses, anda mesti menyemak sama ada kebenaran akses fail adalah betul. Anda boleh menyemak sama ada fail boleh dibaca atau boleh ditulis menggunakan kaedah canRead() dan canWrite() bagi kelas Fail.

Fail fail = new File("filename.txt");
if(file.canRead() && file.canWrite()){

//do something
Salin selepas log masuk
Salin selepas log masuk

}lain{

//handle exception
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}

2.3 Tutup fail

jika fail sedang diduduki oleh proses lain, anda mesti menunggu sehingga proses mengeluarkan fail sebelum anda boleh membuka fail. Oleh itu, sebelum cuba membuka fail, kita harus terlebih dahulu mengesahkan sama ada proses lain menggunakan fail itu, dan jika ya, tunggu proses itu mengeluarkan fail atau cuba gunakan nama fail yang berbeza.

2.4 Menangkap pengecualian

Akhir sekali, kita boleh menggunakan pernyataan cuba-tangkap untuk menangkap pengecualian FileNotFoundException, serta pengecualian lain, seperti IOException, SecurityException, dsb. Dengan menangkap pengecualian, kami boleh mengendalikan situasi pengecualian dengan lebih baik.

cuba{

FileInputStream fis = new FileInputStream("filename.txt");
Salin selepas log masuk

}tangkap(FileNotFoundException e){

//handle exception
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}tangkap(IOException e){

//handle exception
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}tangkap(SecurityException e){

//handle exception
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

}terdapat beberapa cara untuk menyelesaikan

NoException di atas kaedah Java. Apabila kami melakukan operasi membaca dan menulis fail, kami mesti menyemak laluan fail, kebenaran akses, sama ada fail itu diduduki dan faktor lain untuk memastikan kestabilan dan keteguhan kod.

Atas ialah kandungan terperinci Penyelesaian kepada pengecualian FileNotFoundException dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan