FileNotFoundException ir vēl viena izņēmuma klase, kas pieejama java.io iepakojums. Izņēmums rodas, kad mēs cenšamies piekļūt failam, kas sistēmā nav pieejams. Tas ir pārbaudīts izņēmums, jo tas notiek izpildes laikā, nevis kompilēšanas laikā, un to izmet kāds no šiem konstruktoriem:
FileNotFoundException konstruktors
FileNotFoundException klasei ir šādi divi konstruktori:
1. FileNotFoundException()
Tas konstruē FileNotFoundException un iestata kļūdas informācijas ziņojumu nulles, jo mēs konstruktoram nenodevām nevienu parametru.
Sintakse:
Sintakse FileNotFoundException ir šāds:
public FileNotFoundException()
2. FileNotFoundException(String str)
Tas izveido FileNotFoundException un iestata kļūdas informācijas ziņojumu str, ko nododam konstruktoram.
Sintakse:
Sintakse FileNotFoundException ir šāds:
public FileNotFoundException(String str)
FileNotFoundException metodes
Tas nodrošina visas metodes, ko nodrošina java.lang.Izmetams un java.lang.Object klasēm, jo tā ir abu šo klašu apakšklase.
Metodes java.lang.Throwable class
pievienotSuppressed (), fillInStackTrace (), getCause (), getLocalizedMessage (), getMessage (), getStackTrace (), getSuppressed (), initCause (), printStackTrace (), printStackTrace (), printStackTrace (), setStackTrace (), un toString ().
Java.lang.Object klases metodes
klons (), vienāds (), pabeigt (), getClass (), hashCode (), paziņot (), paziņot visiem (), un pagaidi ().
Lai uzzinātu vairāk par šīm metodēm, apmeklējiet šo:
https://www.javatpoint.com/object-class
https://www.javatpoint.com/post/java-throwable
Kāpēc notiek FileNotFoundException?
Galvenokārt ir divi iemesli, kāpēc mēs saņemam šo kļūdu. Šī izņēmuma iegūšanas iemesli ir šādi:
- Kad mēs mēģinām piekļūt šim failam, tas sistēmā nav pieejams.
- Mēģinot piekļūt failam, kas nav pieejams, piemēram, ja fails ir pieejams tikai lasāmai darbībai, un mēģinām to modificēt, tas var izraisīt kļūdu.
Ņemsim dažus piemērus un sapratīsim abus iepriekš minētos punktus pa vienam:
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(); } } }
Izvade:
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(); } } }
Izvade:
Apstrāde FileNotFoundException
Lai apstrādātu izņēmumu, ir jāizmanto try-catch bloks. Mēģināšanas blokā mēs ievietosim to koda rindiņu, kas var radīt izņēmumu. Ikreiz, kad notiek izņēmums, uztveršanas bloks to apstrādās. Ir daži citi veidi, kā mēs varam noņemt FileNotFountException un kas ir šādi:
- Ja mēs atrodam kļūdas ziņojumu šāda faila vai direktorija nav ; mēs varam noņemt šo izņēmumu, atkārtoti pārbaudot kodu un pārbaudot, vai konkrētais fails ir pieejams dotajā direktorijā.
- Ja mēs atrodam kļūdas ziņojumu pieeja liegta , mums ir jāpārbauda, vai faila atļauja atbilst mūsu prasībām. Ja atļauja neatbilst mūsu prasībām, mums ir jāmaina faila atļauja.
- Priekš pieeja liegta kļūdas ziņojumu, mums arī jāpārbauda, vai šo failu izmanto cita programma.
- Ja mēs atrodam kļūdas ziņojumu norādītais fails ir direktorijs , mums tas ir jāizdzēš vai jāmaina faila nosaukums.
Tātad, FileNotFoundExceptionExample1 klasē mēs ievietojam FileReader kodu try-catch blokā un nodrošinām, ka norādītais faila nosaukums ir pieejams direktorijā.
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(); } } }
Izvade: