logo

FileNotFoundException v jazyku Java

FileNotFoundException je ďalšia trieda výnimky dostupná v java.io balík. Výnimka nastane, keď sa pokúsime získať prístup k súboru, ktorý nie je dostupný v systéme. Je to kontrolovaná výnimka, pretože sa vyskytuje v čase spustenia, nie v čase kompilácie, a je vyvolaná jedným z nasledujúcich konštruktorov:

    RandomAccessFile FileInputStream FileOutputStream
FileNotFoundException v jazyku Java

FileNotFoundException Constructor

Trieda FileNotFoundException má nasledujúce dva konštruktory:

1. FileNotFoundException()

Vytvorí výnimku FileNotFoundException a nastaví hlásenie s podrobnosťami o chybe na hodnotu null, pretože sme do konštruktora neodovzdali žiadny parameter.

Syntax:

Syntax súboru FileNotFoundException je nasledujúca:

 public FileNotFoundException() 

2. FileNotFoundException(String str)

Vytvorí výnimku FileNotFoundException a nastaví správu s podrobnosťami o chybe str, ktoré odovzdáme konštruktérovi.

Syntax:

Syntax súboru FileNotFoundException je nasledujúca:

 public FileNotFoundException(String str) 

Metódy FileNotFoundException

Poskytuje všetky metódy, ktoré poskytuje java.lang.Vhadzovateľné a java.lang.Object triedy, pretože je podtriedou oboch týchto tried.

Metódy triedy java.lang.Throwable

addSuppressed (), fillInStackTrace (), getCause (), getLocalizedMessage (), getMessage (), getStackTrace (), getSuppressed (), initCause (), printStackTrace (), printStackTrace (), printStackTrace (), setStackTrace (), a natiahnuť ().

Metódy triedy java.lang.Object

klonovať (), rovná sa (), dokončiť (), getClass (), hashCode (), oznámiť (), notifyAll (), a počkaj ().

Ak sa chcete dozvedieť viac o týchto metódach, navštívte nasledujúce stránky:

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

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

Prečo dochádza k výnimke FileNotFoundException?

K tejto chybe dochádza hlavne z dvoch dôvodov. Dôvody na získanie tejto výnimky sú nasledovné:

  1. Keď sa pokúsime získať prístup k tomuto súboru, nie je v systéme k dispozícii.
  2. Keď sa pokúsime získať prístup k súboru, ktorý je neprístupný, napríklad ak je súbor dostupný pre operáciu iba na čítanie a pokúsime sa ho upraviť, môže to spôsobiť chybu.

Zoberme si niekoľko príkladov a pochopme oba vyššie uvedené body jeden po druhom:

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

Výkon:

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

Výkon:

FileNotFoundException v jazyku Java

Spracovanie výnimky FileNotFoundException

Na spracovanie výnimky je potrebné použiť blok try-catch. Do bloku try vložíme ten riadok kódu, ktorý môže vyvolať výnimku. Kedykoľvek sa vyskytne výnimka, blok catch ju spracuje. Existuje niekoľko ďalších spôsobov, ktorými môžeme odstrániť FileNotFountException a ktoré sú nasledovné:

  1. Ak nájdeme chybové hlásenie taký súbor alebo adresár neexistuje ; túto výnimku môžeme odstrániť opätovným overením kódu a kontrolou, či je daný súbor dostupný v danom adresári alebo nie.
  2. Ak nájdeme chybové hlásenie prístup je zamietnutý , musíme skontrolovať, či je povolenie súboru v súlade s našimi požiadavkami alebo nie. Ak povolenie nespĺňa našu požiadavku, musíme povolenie súboru upraviť.
  3. Pre prístup je zamietnutý chybové hlásenie, musíme tiež skontrolovať, či daný súbor používa iný program alebo nie.
  4. Ak nájdeme chybové hlásenie zadaný súbor je adresár , musíme ho vymazať alebo zmeniť názov súboru.

Takže v triede FileNotFoundExceptionExample1 vložíme kód FileReader do bloku try-catch a zabezpečíme, aby bol daný názov súboru dostupný v adresári.

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

Výkon:

FileNotFoundException v jazyku Java