FileNotFoundException هي فئة استثناء أخرى متوفرة في java.io طَرد. يحدث الاستثناء عندما نحاول الوصول إلى هذا الملف غير المتاح في النظام. إنه استثناء محدد لأنه يحدث في وقت التشغيل، وليس وقت الترجمة، ويتم طرحه بواسطة أحد المنشئين التاليين:
منشئ FileNotFoundException
تحتوي فئة FileNotFoundException على المنشئين التاليين:
1. فيلينوتفونديكسسيبشن ()
يقوم بإنشاء FileNotFoundException ويقوم بتعيين رسالة تفاصيل الخطأ فارغة لأننا لم نمرر أي معلمة إلى المُنشئ.
بناء الجملة:
بناء الجملة من FileNotFoundException على النحو التالي:
public FileNotFoundException()
2. FileNotFoundException(سلسلة سلسلة)
يقوم بإنشاء FileNotFoundException وتعيين رسالة تفاصيل الخطأ شارع, الذي نمرره إلى المنشئ.
إعادة تسمية المجلد لينكس
بناء الجملة:
بناء الجملة من FileNotFoundException على النحو التالي:
public FileNotFoundException(String str)
أساليب FileNotFoundException
ويوفر جميع الأساليب التي يوفرها java.lang.Throwable و ال java.lang.Object الطبقات لأنها فئة فرعية من كل من هذه الفئات.
طرق فئة java.lang.Throwable
addSuppressed ()، fillInStackTrace ()، getCause ()، getLocalizedMessage ()، getMessage ()، getStackTrace ()، getSuppressed ()، initCause ()، طباعة تتبع المكدس ()، طباعة تتبع المكدس ()، طباعة تتبع المكدس ()، setStackTrace ()، و إلى سلسلة ().
طرق فئة java.lang.Object
استنساخ ()، يساوي ()، وضع اللمسات الأخيرة ()، getClass ()، hashCode ()، يخطر ()، notifyAll ()، و انتظر ().
للتعرف على المزيد حول هذه الطرق، قم بزيارة ما يلي:
https://www.javatpoint.com/object-class
https://www.javatpoint.com/post/java-throwable
لماذا يحدث FileNotFoundException؟
هناك سببان رئيسيان لحدوث هذا الخطأ. وأسباب الحصول على هذا الاستثناء هي كما يلي:
- عندما نحاول الوصول إلى هذا الملف، فهو غير متوفر في النظام.
- عندما نحاول الوصول إلى هذا الملف الذي لا يمكن الوصول إليه، على سبيل المثال، إذا كان الملف متاحًا للقراءة فقط ونحاول تعديله، فقد يؤدي ذلك إلى حدوث خطأ.
لنأخذ بعض الأمثلة ونفهم النقاط المذكورة أعلاه واحدة تلو الأخرى:
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
من أجل معالجة الاستثناء، يلزم استخدام كتلة محاولة الالتقاط. في كتلة المحاولة، سنضع هذا السطر من التعليمات البرمجية الذي يمكنه طرح استثناء. عند حدوث استثناء، ستتعامل كتلة الالتقاط معه. هناك بعض الطرق الأخرى التي يمكننا من خلالها إزالة FileNotFountException والتي هي كما يلي:
- إذا وجدنا رسالة الخطأ لا يوجد مثل هذا الملف أو الدليل ; يمكننا إزالة هذا الاستثناء عن طريق إعادة التحقق من الكود والتحقق مما إذا كان الملف المحدد متاحًا في الدليل المحدد أم لا.
- إذا وجدنا رسالة الخطأ الدخول محظور علينا أن نتحقق مما إذا كان إذن الملف يتوافق مع متطلباتنا أم لا. إذا لم يكن الإذن متوافقًا مع متطلباتنا، فيجب علينا تعديل إذن الملف.
- ل الدخول محظور رسالة خطأ، علينا أيضًا التحقق مما إذا كان هذا الملف قيد الاستخدام بواسطة برنامج آخر أم لا.
- إذا وجدنا رسالة الخطأ الملف المحدد هو الدليل ، علينا حذفه أو تغيير اسم الملف.
لذلك، في فئة FileNotFoundExceptionExample1، نضع كود FileReader في كتلة محاولة الالتقاط ونتأكد من توفر اسم الملف المحدد في الدليل.
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(); } } }
انتاج: