logo

FileNotFoundException in Java

FileNotFoundException is een andere uitzonderingsklasse die beschikbaar is in de java.io pakket. De uitzondering treedt op wanneer we proberen toegang te krijgen tot dat bestand dat niet beschikbaar is in het systeem. Het is een gecontroleerde uitzondering omdat deze tijdens runtime optreedt en niet tijdens het compileren, en wordt gegenereerd door een van de volgende constructors:

    RandomAccessBestand FileInputStream FileOutputStream
FileNotFoundException in Java

FileNotFoundException-constructor

De FileNotFoundException-klasse heeft de volgende twee constructors:

1. FileNotFoundException()

Het construeert een FileNotFoundException en stelt het foutdetailbericht null in, omdat we geen enkele parameter aan de constructor hebben doorgegeven.

Syntaxis:

De syntaxis van de FileNotFoundException is als volgt:

 public FileNotFoundException() 

2. FileNotFoundException(Stringstr)

Het construeert een FileNotFoundException en stelt het foutdetailbericht in str, die we doorgeven aan de constructeur.

Syntaxis:

De syntaxis van de FileNotFoundException is als volgt:

 public FileNotFoundException(String str) 

FileNotFoundException-methoden

Het biedt alle methoden die worden geboden door de java.lang.Gooibaar en de java.lang.Object klassen omdat het een subklasse is van beide klassen.

Methoden van java.lang.Throwable-klasse

toevoegenOnderdrukt (), fillInStackTrace (), krijgOorzaak (), getLocalizedMessage (), ontvang bericht (), getStackTrace (), onderdrukt worden (), initOorzaak (), printStackTrace (), printStackTrace (), printStackTrace (), setStackTrace (), En naarString ().

Methoden van de klasse java.lang.Object

kloon (), gelijk aan (), afronden (), krijgKlasse (), hashCode (), op de hoogte stellen (), alles melden (), En wachten ().

Voor meer informatie over deze methoden gaat u naar:

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

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

Waarom FileNotFoundException optreedt?

Er zijn hoofdzakelijk twee redenen waardoor we deze fout krijgen. De redenen voor het verkrijgen van deze uitzondering zijn als volgt:

  1. Wanneer we toegang proberen te krijgen tot dat bestand, is dat niet beschikbaar in het systeem.
  2. Wanneer we proberen toegang te krijgen tot dat bestand dat ontoegankelijk is, bijvoorbeeld als een bestand beschikbaar is voor alleen-lezen-bewerking en proberen het te wijzigen, kan dit de fout veroorzaken.

Laten we enkele voorbeelden nemen en beide bovenstaande punten één voor één begrijpen:

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

Uitgang:

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

Uitgang:

FileNotFoundException in Java

Omgaan met FileNotFoundException

Om de uitzondering af te handelen, is het nodig om het try-catch-blok te gebruiken. In het try-blok plaatsen we die regel code die een uitzondering kan genereren. Wanneer er zich een uitzondering voordoet, zal het catch-blok deze afhandelen. Er zijn enkele andere manieren waarop we de FileNotFountException en die zijn als volgt:

  1. Als we de foutmelding vinden er bestaat niet zo'n bestand of map ; we kunnen die uitzondering verwijderen door de code opnieuw te verifiëren en te controleren of het gegeven bestand beschikbaar is in de gegeven map of niet.
  2. Als we de foutmelding vinden toegang is geweigerd , moeten we controleren of de toestemming voor het bestand voldoet aan onze vereisten of niet. Als de toestemming niet aan onze eisen voldoet, moeten we de toestemming voor het bestand wijzigen.
  3. Voor toegang is geweigerd foutmelding, moeten we ook controleren of dat bestand al dan niet door een ander programma wordt gebruikt.
  4. Als we de foutmelding vinden het opgegeven bestand is een map , moeten we het verwijderen of de naam van het bestand wijzigen.

Dus in de klasse FileNotFoundExceptionExample1 plaatsen we de FileReader-code in het try-catch-blok en zorgen we ervoor dat de opgegeven bestandsnaam beschikbaar is in de directory.

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

Uitgang:

FileNotFoundException in Java