FileNotFoundException egy másik kivételosztály elérhető a java.io csomag. A kivétel akkor fordul elő, amikor megpróbálunk hozzáférni ahhoz a fájlhoz, amely nem elérhető a rendszerben. Ez egy ellenőrzött kivétel, mert futási időben fordul elő, nem fordítási időben, és a következő konstruktorok egyike dobja ki:
FileNotFoundException konstruktor
A FileNotFoundException osztálynak a következő két konstruktora van:
1. FileNotFoundException()
Létrehoz egy FileNotFoundException-t, és nullára állítja a részletes hibaüzenetet, mert nem adtunk át paramétert a konstruktornak.
Szintaxis:
A szintaxis a FileNotFoundException az alábbiak:
public FileNotFoundException()
2. FileNotFoundException(String str)
Létrehoz egy FileNotFoundException kivételt, és beállítja a hibaüzenetet str, amelyet átadunk a kivitelezőnek.
Szintaxis:
A szintaxis a FileNotFoundException az alábbiak:
public FileNotFoundException(String str)
FileNotFoundException Methods
Ez biztosítja az összes módszert, amelyet a java.lang.Dobható és a java.lang.Object osztályokba, mert ez mindkét osztály alosztálya.
A java.lang.Throwable class módszerei
addSuppressed (), fillInStackTrace (), getCuse (), getLocalizedMessage (), getMessage (), getStackTrace (), getSuppressed (), initCause (), printStackTrace (), printStackTrace (), printStackTrace (), setStackTrace (), és toString ().
A java.lang.Object osztály módszerei
klón (), egyenlő (), véglegesíteni (), getClass (), hash kód (), értesítse (), értesítiMindent (), és várjon ().
Ha többet szeretne megtudni ezekről a módszerekről, látogasson el a következő oldalra:
https://www.javatpoint.com/object-class
https://www.javatpoint.com/post/java-throwable
Miért fordul elő FileNotFoundException?
Főleg két oka van annak, hogy ezt a hibát kapjuk. Ennek a kivételnek az okai a következők:
- Amikor megpróbálunk hozzáférni ehhez a fájlhoz, az nem érhető el a rendszerben.
- Amikor megpróbálunk hozzáférni ahhoz a fájlhoz, amely nem érhető el, például ha egy fájl csak olvasható műveletre elérhető, és megpróbáljuk módosítani, az hibát okozhat.
Vegyünk néhány példát, és értsük meg egyenként mindkét fenti pontot:
FileNotFoundExample1.java
// import required classes and packages package javaTpoint.MicrosoftJava; import java.io.*; // it contains all the input and the output streams // create FileNotFoundExceptionExample1 to undestand the first point. public class FileNotFoundExceptionExample1 { public static void main(String[] args) { // creating an instance of the FileReader class FileReader fileReader = new FileReader('Test.txt'); // create an instance of the BufferedReader and pass the FileReader instance to it. BufferedReader bufferReader = new BufferedReader(fileReader); // declaring an empty string by passing null value String fileData = null; // use while loop to read and print data from buffered reader while ((fileData = bufferReader.readLine()) != null) { System.out.println(fileData); } // closing the BufferedReader object try { bufferReader.close(); } catch (IOException e) { e.printStackTrace(); } } }
Kimenet:
FileNotFoundExample2.java
// import required classes and packages package javaTpoint.MicrosoftJava; import java.io.*; // it contains all the input and the output streams // create FileNotFoundExceptionExample2 to understand the second point. public class FileNotFoundExceptionExample2 { // main() method start public static void main(String[] args) { try { // creating an instance of the File class to open file File fileObj = new File('Test.txt'); // creating an instance of the PrintWriter class by initiating FileWriter class instance PrintWriter printWriter1 = new PrintWriter(new FileWriter(fileObj), true); // print simple text hello world printWriter1.println('Hello world'); printWriter1.close(); // making Test file read only fileObj.setReadOnly(); // try to write data into Test.txt file PrintWriter printWriter2 = new PrintWriter(new FileWriter('Test.txt'), true); printWriter2.println('Hello World'); printWriter2.close(); } // catching exception thrown by the try block catch(Exception ex) { ex.printStackTrace(); } } }
Kimenet:
A FileNotFoundException kezelése
A kivétel kezeléséhez a try-catch blokkot kell használni. A try blokkban azt a kódsort helyezzük el, amely kivételt tud okozni. Ha kivétel történik, a catch blokk kezeli azt. Vannak más módszerek is, amelyeken keresztül eltávolíthatjuk a FileNotFountException és amelyek a következők:
- Ha megtaláljuk a hibaüzenetet nincs ilyen fájl vagy könyvtár ; Ezt a kivételt úgy tudjuk eltávolítani, hogy újra ellenőrizzük a kódot, és ellenőrizzük, hogy az adott fájl elérhető-e az adott könyvtárban vagy sem.
- Ha megtaláljuk a hibaüzenetet hozzáférés megtagadva , ellenőriznünk kell, hogy a fájl engedélye megfelel-e a követelményeinknek vagy sem. Ha az engedély nem felel meg a követelményeinknek, akkor módosítanunk kell a fájl engedélyét.
- Mert hozzáférés megtagadva hibaüzenetet, azt is ellenőriznünk kell, hogy a fájlt használja-e egy másik program vagy sem.
- Ha megtaláljuk a hibaüzenetet a megadott fájl egy könyvtár , törölnünk kell vagy módosítanunk kell a fájl nevét.
Tehát a FileNotFoundExceptionExample1 osztályban a FileReader kódot a try-catch blokkba helyezzük, és biztosítjuk, hogy a megadott fájlnév elérhető legyen a könyvtárban.
FileNotFoundExample1.java
// import required classes and packages package javaTpoint.MicrosoftJava; import java.io.*; // it contains all the input and the output streams // create FileNotFoundExceptionExample1 public class FileNotFoundExceptionExample1 { public static void main(String[] args) { // creating an instance of the FileReader class FileReader fileReader; try { fileReader = new FileReader('Test.txt'); // create instance of the BufferedReader and pass the FileReader instance to it. BufferedReader bufferReader = new BufferedReader(fileReader); // declaring an empty string by passing null value String fileData = null; // use while loop to read and print data from buffered reader try { while ((fileData = bufferReader.readLine()) != null) { System.out.println(fileData); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }
Kimenet: