FileNotFoundException це інший клас винятків, доступний у java.io пакет. Виняток виникає, коли ми намагаємося отримати доступ до файлу, який недоступний у системі. Це перевірений виняток, оскільки він виникає під час виконання, а не під час компіляції, і його генерує один із таких конструкторів:
Конструктор FileNotFoundException
Клас FileNotFoundException має такі два конструктори:
1. FileNotFoundException()
Він створює FileNotFoundException і встановлює нульове значення повідомлення про помилку, оскільки ми не передали жодного параметра конструктору.
Синтаксис:
Синтаксис FileNotFoundException полягає в наступному:
q2 місяці
public FileNotFoundException()
2. FileNotFoundException(String str)
Він створює FileNotFoundException і встановлює детальне повідомлення про помилку вулиця, який ми передаємо конструктору.
Синтаксис:
Синтаксис FileNotFoundException полягає в наступному:
java hashmap
public FileNotFoundException(String str)
Методи FileNotFoundException
Він надає всі методи, які надає java.lang.Throwable і java.lang.Object класи, оскільки він є підкласом обох цих класів.
Методи класу java.lang.Throwable
addSuppressed (), fillInStackTrace (), getCause (), getLocalizedMessage (), getMessage (), getStackTrace (), getSuppressed (), initCause (), printStackTrace (), printStackTrace (), printStackTrace (), setStackTrace (), і toString ().
Методи класу java.lang.Object
клонувати (), дорівнює (), завершити (), getClass (), hashCode (), повідомити (), notifyAll (), і чекати ().
Щоб дізнатися більше про ці методи, відвідайте наступне:
https://www.javatpoint.com/object-class
https://www.javatpoint.com/post/java-throwable
Чому виникає FileNotFoundException?
Є дві основні причини, через які ми отримуємо цю помилку. Причини отримання цього винятку:
- Коли ми намагаємося отримати доступ до цього файлу, він недоступний у системі.
- Коли ми намагаємося отримати доступ до недоступного файлу, наприклад, якщо файл доступний лише для читання, і намагаємося змінити його, це може викликати помилку.
Давайте візьмемо кілька прикладів і зрозуміємо обидва вищезазначені пункти один за іншим:
int до рядка java
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(); } } }
Вихід:
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(); } } }
Вихід:
Обробка FileNotFoundException
Щоб обробити виняток, потрібно використовувати блок try-catch. У блоці try ми розмістимо той рядок коду, який може викликати виключення. Щоразу, коли виникає виняток, блок catch оброблятиме його. Є й інші способи, за допомогою яких ми можемо видалити FileNotFountException і які є такими:
- Якщо ми знайдемо повідомлення про помилку такого файлу чи каталогу немає ; ми можемо видалити цей виняток, повторно перевіривши код і перевіривши, чи файл доступний у даному каталозі чи ні.
- Якщо ми знайдемо повідомлення про помилку Доступ заборонено , ми повинні перевірити, чи дозвіл файлу відповідає нашим вимогам чи ні. Якщо дозвіл не відповідає нашим вимогам, ми маємо змінити дозвіл файлу.
- для Доступ заборонено повідомлення про помилку, ми також повинні перевірити, чи цей файл використовується іншою програмою чи ні.
- Якщо ми знайдемо повідомлення про помилку вказаний файл є каталогом , ми повинні видалити його або змінити назву файлу.
Отже, у класі FileNotFoundExceptionExample1 ми розміщуємо код FileReader у блоці try-catch і гарантуємо, що вказане ім’я файлу доступне в каталозі.
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(); } } }
Вихід:
порівняльний список