logo

FileNotFoundException a Java

FileNotFoundException és una altra classe d'excepció disponible al java.io paquet. L'excepció es produeix quan intentem accedir a aquell fitxer que no està disponible al sistema. És una excepció verificada perquè es produeix en temps d'execució, no en temps de compilació, i és llançada per un dels constructors següents:

    RandomAccessFile FileInputStream FileOutputStream
FileNotFoundException a Java

FileNotFoundException Constructor

La classe FileNotFoundException té els dos constructors següents:

1. FileNotFoundException()

Construeix una FileNotFoundException i estableix el missatge de detall d'error nul perquè no hem passat cap paràmetre al constructor.

Sintaxi:

La sintaxi de la FileNotFoundException és el següent:

 public FileNotFoundException() 

2. FileNotFoundException(String str)

Construeix una FileNotFoundException i estableix el missatge de detall d'error carrer, que passem al constructor.

Sintaxi:

La sintaxi de la FileNotFoundException és el següent:

 public FileNotFoundException(String str) 

FileNotFoundException Mètodes

Proporciona tots els mètodes que ofereix el java.lang.Throwable i la java.lang.Object classes perquè és una subclasse d'aquestes dues classes.

Mètodes de classe java.lang.Throwable

addSuppressed (), fillInStackTrace (), getCausa (), getLocalizedMessage (), getMessage (), getStackTrace (), quedar-se suprimit (), initCause (), printStackTrace (), printStackTrace (), printStackTrace (), setStackTrace (), i toString ().

Mètodes de classe java.lang.Object

clonar (), és igual (), finalitzar (), getClass (), hashCode (), notificar (), notificar-ho tot (), i espera ().

Per obtenir més informació sobre aquests mètodes, visiteu el següent:

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

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

Per què es produeix FileNotFoundException?

Hi ha principalment dues raons per les quals obtenim aquest error. Els motius per obtenir aquesta excepció són els següents:

  1. Quan intentem accedir a aquest fitxer, no està disponible al sistema.
  2. Quan intentem accedir a aquest fitxer que és inaccessible, per exemple, si un fitxer està disponible per a l'operació de només lectura i intentem modificar-lo, pot generar l'error.

Prenem alguns exemples i entenem els dos punts anteriors un per un:

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

Sortida:

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

Sortida:

FileNotFoundException a Java

Gestió de FileNotFoundException

Per gestionar l'excepció, cal utilitzar el bloc try-catch. Al bloc try, posarem aquella línia de codi que pot llançar una excepció. Sempre que es produeixi una excepció, el bloc catch la gestionarà. Hi ha algunes altres maneres a través de les quals podem eliminar FileNotFountException i que són les següents:

  1. Si trobem el missatge d'error no hi ha aquest fitxer o directori ; podem eliminar aquesta excepció tornant a verificar el codi i comprovant si el fitxer donat està disponible al directori donat o no.
  2. Si trobem el missatge d'error accés denegat , hem de comprovar si el permís del fitxer és segons el nostre requisit o no. Si el permís no és el nostre requisit, hem de modificar el permís del fitxer.
  3. Per accés denegat missatge d'error, també hem de comprovar si aquest fitxer està en ús per un altre programa o no.
  4. Si trobem el missatge d'error el fitxer especificat és un directori , l'hem d'esborrar o canviar el nom del fitxer.

Per tant, a la classe FileNotFoundExceptionExample1, posem el codi FileReader al bloc try-catch i ens assegurem que el nom de fitxer donat estigui disponible al directori.

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

Sortida:

FileNotFoundException a Java