ФилеНотФоундЕкцептион је још једна класа изузетака доступна у јава.ио пакет. Изузетак се дешава када покушамо да приступимо тој датотеци која није доступна у систему. То је проверени изузетак јер се јавља у време извршавања, а не у време компајлирања, и избацује га један од следећих конструктора:
ФилеНотФоундЕкцептион Цонструцтор
ФилеНотФоундЕкцептион класа има следећа два конструктора:
1. ФилеНотФоундЕкцептион()
Конструише изузетак ФилеНотФоундЕкцептион и поставља поруку са детаљима о грешци на нулту вредност јер нисмо проследили ниједан параметар конструктору.
Синтакса:
Синтакса оф тхе ФилеНотФоундЕкцептион је као што следи:
public FileNotFoundException()
2. ФилеНотФоундЕкцептион(стринг стр)
Конструише изузетак ФилеНотФоундЕкцептион и поставља детаљну поруку о грешци стр, које прослеђујемо конструктору.
Синтакса:
Синтакса оф тхе ФилеНотФоундЕкцептион је као што следи:
public FileNotFoundException(String str)
ФилеНотФоундЕкцептион Методе
Пружа све методе које нуди јава.ланг.Тхровабле анд тхе јава.ланг.Објецт класе јер је поткласа обе ове класе.
Методе класе јава.ланг.Тхровабле
аддСуппрессед (), филлИнСтацкТраце (), гетЦаусе (), гетЛоцализедМессаге (), гетМессаге (), гетСтацкТраце (), гетСуппрессед (), инитЦаусе (), принтСтацкТраце (), принтСтацкТраце (), принтСтацкТраце (), сетСтацкТраце (), и тоСтринг ().
Методе класе јава.ланг.Објецт
клон (), једнаки (), финализовати (), гетЦласс (), хасхЦоде (), обавестити (), нотифиАлл (), и чекати ().
Да бисте сазнали више о овим методама, посетите следеће:
хттпс://ввв.јаватпоинт.цом/објецт-цласс
хттпс://ввв.јаватпоинт.цом/пост/јава-тхровабле
Зашто се појављује ФилеНотФоундЕкцептион?
Постоје углавном два разлога због којих добијамо ову грешку. Разлози за добијање овог изузетка су следећи:
- Када покушамо да приступимо тој датотеци, она није доступна у систему.
- Када покушамо да приступимо тој датотеци која је недоступна, на пример, ако је датотека доступна за рад само за читање и покушамо да је изменимо, може доћи до грешке.
Узмимо неке примере и разумемо обе горе наведене тачке једну по једну:
ФилеНотФоундЕкампле1.јава
// 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(); } } }
Излаз:
ФилеНотФоундЕкампле2.јава
// 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(); } } }
Излаз:
Руковање ФилеНотФоундЕкцептион
Да бисте обрадили изузетак, потребно је користити блок три-цатцх. У блок три ставићемо ту линију кода која може да избаци изузетак. Кад год се догоди изузетак, блок цатцх ће га обрадити. Постоје неки други начини на које можемо уклонити ФилеНотФоунтЕкцептион а који су следећи:
- Ако пронађемо поруку о грешци не постоји таква датотека или директоријум ; можемо уклонити тај изузетак поновним верификацијом кода и провером да ли је дата датотека доступна у датом директоријуму или не.
- Ако пронађемо поруку о грешци Приступ је одбијен , морамо да проверимо да ли је дозвола за датотеку у складу са нашим захтевима или не. Ако дозвола није у складу са нашим захтевима, морамо да изменимо дозволу датотеке.
- За Приступ је одбијен поруку о грешци, такође морамо да проверимо да ли ту датотеку користи други програм или не.
- Ако пронађемо поруку о грешци наведена датотека је директоријум , морамо да га избришемо или променимо име датотеке.
Дакле, у класи ФилеНотФоундЕкцептионЕкампле1, ставили смо ФилеРеадер код у блок три-цатцх и осигурали да је дато име датотеке доступно у директоријуму.
ФилеНотФоундЕкампле1.јава
// 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(); } } }
Излаз: