logo

FileNotFoundException în Java

FileNotFoundException este o altă clasă de excepție disponibilă în java.io pachet. Excepția apare atunci când încercăm să accesăm acel fișier care nu este disponibil în sistem. Este o excepție verificată, deoarece apare în timpul rulării, nu în timpul compilării și este aruncată de unul dintre următorii constructori:

    RandomAccessFile FileInputStream FileOutputStream
FileNotFoundException în Java

Constructor FileNotFoundException

Clasa FileNotFoundException are următorii doi constructori:

1. FileNotFoundException()

Construiește o excepție FileNotFoundException și setează mesajul de detaliu de eroare nul deoarece nu am transmis niciun parametru constructorului.

Sintaxă:

Sintaxa lui FileNotFoundException este după cum urmează:

 public FileNotFoundException() 

2. FileNotFoundException (String str)

Construiește o excepție FileNotFoundException și setează mesajul de detaliu al erorii str, pe care o trecem constructorului.

Sintaxă:

Sintaxa lui FileNotFoundException este după cum urmează:

 public FileNotFoundException(String str) 

Metode FileNotFoundException

Acesta oferă toate metodele oferite de java.lang.Throwable si java.lang.Object clase deoarece este o subclasă a ambelor clase.

Metode ale clasei java.lang.Throwable

addSuppressed (), fillInStackTrace (), getCause (), getLocalizedMessage (), getMessage (), getStackTrace (), a fi suprimat (), initCause (), printStackTrace (), printStackTrace (), printStackTrace (), setStackTrace (), și toString ().

Metode ale clasei java.lang.Object

clonare (), egală (), finaliza (), getClass (), hashCode (), notifica (), notifyAll (), și aștepta ().

Pentru a afla mai multe despre aceste metode, vizitați următoarele:

https://www.javatpoint.com/object-class

https://www.javatpoint.com/post/java-throwable

De ce apare FileNotFoundException?

Există în principal două motive pentru care obținem această eroare. Motivele pentru obținerea acestei excepții sunt următoarele:

  1. Când încercăm să accesăm acel fișier, acesta nu este disponibil în sistem.
  2. Când încercăm să accesăm acel fișier care este inaccesibil, de exemplu, dacă un fișier este disponibil pentru operare numai în citire și încercăm să-l modificăm, poate arunca eroarea.

Să luăm câteva exemple și să înțelegem ambele puncte de mai sus unul câte unul:

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(); } } } 

Ieșire:

FileNotFoundException în Java

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(); } } } 

Ieșire:

FileNotFoundException în Java

Gestionarea FileNotFoundException

Pentru a gestiona excepția, este necesar să utilizați blocul try-catch. În blocul try, vom pune acea linie de cod care poate arunca o excepție. Ori de câte ori apare o excepție, blocul catch o va gestiona. Există și alte moduri prin care putem elimina FileNotFountException și care sunt după cum urmează:

  1. Dacă găsim mesajul de eroare nu există un astfel de fișier sau director ; putem elimina acea excepție verificând din nou codul și verificând dacă fișierul dat este disponibil sau nu în directorul dat.
  2. Dacă găsim mesajul de eroare accesul este interzis , trebuie să verificăm dacă permisiunea fișierului este conform cerințelor noastre sau nu. Dacă permisiunea nu este conform cerințelor noastre, trebuie să modificăm permisiunea fișierului.
  3. Pentru accesul este interzis mesaj de eroare, trebuie de asemenea să verificăm dacă acel fișier este utilizat de un alt program sau nu.
  4. Dacă găsim mesajul de eroare fișierul specificat este un director , trebuie să-l ștergem sau să schimbăm numele fișierului.

Deci, în clasa FileNotFoundExceptionExample1, punem codul FileReader în blocul try-catch și ne asigurăm că numele fișierului dat este disponibil în director.

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(); } } } 

Ieșire:

FileNotFoundException în Java