logo

FileNotFoundException u Javi

FileNotFoundException je još jedna klasa izuzetaka dostupna u java.io paket. Iznimka se događa kada pokušamo pristupiti toj datoteci koja nije dostupna u sustavu. To je provjerena iznimka jer se pojavljuje u vrijeme izvođenja, a ne u vrijeme kompajliranja, a izbacuje je jedan od sljedećih konstruktora:

    RandomAccessFile FileInputStream FileOutputStream
FileNotFoundException u Javi

FileNotFoundException Constructor

Klasa FileNotFoundException ima sljedeća dva konstruktora:

1. FileNotFoundException()

Konstruira FileNotFoundException i postavlja null poruku s pojedinostima o pogrešci jer konstruktoru nismo proslijedili nijedan parametar.

Sintaksa:

Sintaksa FileNotFoundException je kako slijedi:

 public FileNotFoundException() 

2. FileNotFoundException(String str)

Konstruira FileNotFoundException i postavlja poruku s detaljima pogreške str, koje prosljeđujemo konstruktoru.

Sintaksa:

Sintaksa FileNotFoundException je kako slijedi:

 public FileNotFoundException(String str) 

FileNotFoundException metode

Pruža sve metode koje nudi java.lang.Throwable i java.lang.Object klase jer je potklasa obje ove klase.

Metode java.lang.Throwable klase

addSuppressed (), fillInStackTrace (), getCause (), getLocalizedMessage (), getMessage (), getStackTrace (), getSuppressed (), initCause (), printStackTrace (), printStackTrace (), printStackTrace (), setStackTrace (), i toString ().

Metode klase java.lang.Object

klon (), jednaki (), finalizirati (), getClass (), hashCode (), obavijestiti (), obavijestiSve (), i čekati ().

Da biste saznali više o ovim metodama, posjetite sljedeće:

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

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

Zašto se javlja FileNotFoundException?

Postoje uglavnom dva razloga zbog kojih dobivamo ovu pogrešku. Razlozi za dobivanje ove iznimke su sljedeći:

  1. Kada pokušamo pristupiti toj datoteci, ona nije dostupna u sustavu.
  2. Kada pokušamo pristupiti toj datoteci koja je nedostupna, na primjer, ako je datoteka dostupna samo za čitanje i pokušamo je izmijeniti, može doći do pogreške.

Uzmimo neke primjere i shvatimo obje gornje točke jednu po jednu:

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

Izlaz:

FileNotFoundException u Javi

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

Izlaz:

FileNotFoundException u Javi

Rukovanje FileNotFoundException

Kako bi se obradila iznimka, potrebno je koristiti blok try-catch. U blok pokušaja stavit ćemo onu liniju koda koja može izbaciti iznimku. Kad god se dogodi iznimka, blok catch će to obraditi. Postoje neki drugi načini na koje možemo ukloniti FileNotFountException a koji su sljedeći:

  1. Ako pronađemo poruku o pogrešci ne postoji takva datoteka ili direktorij ; možemo ukloniti tu iznimku ponovnom provjerom koda i provjerom je li data datoteka dostupna u danom direktoriju ili ne.
  2. Ako pronađemo poruku o pogrešci pristup je odbijen , moramo provjeriti je li dopuštenje datoteke u skladu s našim zahtjevima ili ne. Ako dopuštenje nije u skladu s našim zahtjevima, moramo izmijeniti dopuštenje datoteke.
  3. Za pristup je odbijen poruku o pogrešci, također moramo provjeriti koristi li tu datoteku drugi program ili ne.
  4. Ako pronađemo poruku o pogrešci navedena datoteka je direktorij , moramo ga izbrisati ili promijeniti naziv datoteke.

Dakle, u klasi FileNotFoundExceptionExample1, stavljamo FileReader kod u try-catch blok i osiguravamo da je navedeni naziv datoteke dostupan u direktoriju.

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

Izlaz:

FileNotFoundException u Javi