logo

FileNotFoundException i Java

FileNotFoundException er en annen unntaksklasse tilgjengelig i java.io pakke. Unntaket oppstår når vi prøver å få tilgang til filen som ikke er tilgjengelig i systemet. Det er et sjekket unntak fordi det oppstår på kjøretid, ikke kompileringstid, og det blir kastet av en av følgende konstruktører:

    RandomAccessFile FileInputStream FileOutputStream
FileNotFoundException i Java

FileNotFoundException Constructor

FileNotFoundException-klassen har følgende to konstruktører:

1. FileNotFoundException()

Den konstruerer en FileNotFoundException og setter feildetaljmeldingen null fordi vi ikke sendte noen parameter til konstruktøren.

Syntaks:

Syntaksen til FileNotFoundException er som følgende:

 public FileNotFoundException() 

2. FileNotFoundException(String str)

Den konstruerer en FileNotFoundException og setter feildetaljmeldingen str, som vi gir til konstruktøren.

Syntaks:

Syntaksen til FileNotFoundException er som følgende:

 public FileNotFoundException(String str) 

FileNotFoundException-metoder

Den gir alle metodene som tilbys av java.lang.Kastbar og java.lang.Object klasser fordi det er en underklasse av begge disse klassene.

Metoder for java.lang.Throwable klasse

addUndertrykt (), fillInStackTrace (), få Årsak (), getLocalizedMessage (), getMessage (), getStackTrace (), bli undertrykt (), initCause (), printStackTrace (), printStackTrace (), printStackTrace (), setStackTrace (), og til String ().

Metoder for java.lang.Object klasse

klone (), er lik (), fullføre (), getClass (), hashkode (), gi beskjed (), varsle Alle (), og vente ().

For å lære mer om disse metodene, besøk følgende:

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

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

Hvorfor FileNotFoundException oppstår?

Det er hovedsakelig to grunner til at vi får denne feilen. Årsakene til å få dette unntaket er som følger:

  1. Når vi prøver å få tilgang til den filen, er den ikke tilgjengelig i systemet.
  2. Når vi prøver å få tilgang til den filen som er utilgjengelig, for eksempel hvis en fil er tilgjengelig for skrivebeskyttet drift og prøver å endre den, kan den gi feilen.

La oss ta noen eksempler og forstå begge punktene ovenfor én etter én:

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

Produksjon:

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

Produksjon:

FileNotFoundException i Java

Håndtering av FileNotFoundException

For å håndtere unntaket kreves det å bruke try-catch-blokken. I prøveblokken legger vi den kodelinjen som kan gi et unntak. Når et unntak oppstår, vil catch-blokken håndtere det. Det er noen andre måter vi kan fjerne FileNotFountException og som er som følger:

  1. Hvis vi finner feilmeldingen det er ingen slik fil eller katalog ; vi kan fjerne dette unntaket ved å verifisere koden på nytt og sjekke om den gitte filen er tilgjengelig i den gitte katalogen eller ikke.
  2. Hvis vi finner feilmeldingen tilgang nektes , må vi sjekke om tillatelsen til filen er i henhold til vårt krav eller ikke. Hvis tillatelsen ikke er i henhold til vårt krav, må vi endre filens tillatelse.
  3. Til tilgang nektes feilmelding, må vi også sjekke om den filen er i bruk av et annet program eller ikke.
  4. Hvis vi finner feilmeldingen den angitte filen er en katalog , må vi slette den eller endre navnet på filen.

Så, i FileNotFoundExceptionExample1-klassen legger vi FileReader-koden i try-catch-blokken og sikrer at det gitte filnavnet er tilgjengelig i katalogen.

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

Produksjon:

FileNotFoundException i Java