اذهب إلى المحتوى
  • 0

خطأ برمجي في جافا FileNotfoundException

الشيخ المختار الشنقيطس

السؤال

السلام عليكم ورحمة الله، عندما اطبق JavaIO, تحدث مشكلة بعد الران

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Main {

  public static void main(String[] args) throws IOException {
    

      FileReader in = null;
      FileWriter out = null;

      in = new FileReader("Test.txt");
      out = new FileWriter("NewFile.txt");

      int i;
      while ((i = in.read()) != -1) out.write(i);

    
    
  }
}

والنتيجة

Screenshot_2020-09-30-16-05-16.thumb.png.c4d99216388db2df1b419a7dab060d2e.png

ما الحل؟ لازلت بانتظار حاسوبي تقريبا يجي 6 هذا الشهر ولكن الان استعمل الهاتف

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يجب أن يكون ملفك موجودًا مباشرة ضمن مجلد المشروع ، وليس داخل أي مجلد فرعي آخر.
لذلك ، إذا كان مجلد مشروعك هو MyProject ، فيجب أن تكون بنية المجلد :

MyProject --> test.text

من ثم ارفق الملفات بالشكل التالي :

new File("test.txt");

تأكد من مكان الملفات لديك أن يكون مباشرة داخل ملف المشروع و ليس داخل ملفات فرعية بداخل ملفات المشروع.

بإمكانك إن أردت الإطلاع على هذا المقال الذي يوضح لك ما نوع هذا الخطأ و يشرح لك كيف يمكن أن تتفاداه.

 

تم التعديل في بواسطة ياسين عناية
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

عليك التأكد من أن الملف موجود داخل الpackage التي تنفذ داخلها الكود .و لإظهار المشكلة بشكل أوضح ضع try و catch لإرسال exception  في حال حدوث خطأ  ومن خلالprintstackTrace تستطيع تتبع أي خطأ بشكل أوضح . 

 e.printStackTrace();

كما في الكود :

try{
FileReader in = null;
FileWriter out = null;

in = new FileReader("Test.txt");
out = new FileWriter("NewFile.txt");

int i;
while ((i = in.read()) != -1) out.write(i);
 } catch (IOException e) {
      System.out.println("An error occurred.");
      e.printStackTrace();  
    } 
تم التعديل في بواسطة omar haddad
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

ليس من المفروض أن يكون ملف "Test.txt" في نفس package يمكنك استعمال absolute path مثال:

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Main {

  public static void main(String[] args) throws IOException {
    

      FileReader in = null;
      FileWriter out = null;

      in = new FileReader("C:\\Users\\pc\\eclipse-workspace\\Test.txt");
      out = new FileWriter("NewFile.txt");

      int i;
      while ((i = in.read()) != -1) out.write(i);

    
    
  }
}

لاحظ في الصورة أنني وضعت مسار الملف انطلاقا من الجذر root.

للمزيد عن absolute path و relative path اقرأ من هنا.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 50 دقائق مضت قال ayoubridouani:

ليس من المفروض أن يكون ملف "Test.txt" في نفس package يمكنك استعمال absolute path مثال:

صحيح, لكنه يستعمل تطبيق على الهاتف ربما لا يوفر له مسار مطلق

 

بتاريخ 4 ساعات قال الشيخ المختار الشنقيطس:

ما الحل؟ لازلت بانتظار حاسوبي تقريبا يجي 6 هذا الشهر ولكن الان استعمل الهاتف

تأكد من أن التطبيق الذي تشغل عليه جافا يدعم تنفيذ هذه المكتبات في بيئة أندرويد

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 5 دقائق مضت قال Wael Aljamal:

صحيح, لكنه يستعمل تطبيق على الهاتف ربما لا يوفر له مسار مطلق

 

تأكد من أن التطبيق الذي تشغل عليه جافا يدعم تنفيذ هذه المكتبات في بيئة أندرويد

من الممكن إستعمال absolute path حتى في أجهزة الأندرويد، أتركك مع قراءة هذه المناقشة لتلاحظ ذلك.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 1 ساعة قال ayoubridouani:

من الممكن إستعمال absolute path حتى في أجهزة الأندرويد، أتركك مع قراءة هذه المناقشة لتلاحظ ذلك.

ليس له علاقة بالسؤال

مكتبات جافا المستخدمة في برمجة الأندرويد لها صلاحيات مختلفة عن مكتبات جافا العادية التي يقوم بالبرمجة بها حاليا (فهو يستخدم محاكي محلي كتطبيق اندرويد ينفذ برنامج جافا)

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 2 ساعات قال Wael Aljamal:

ليس له علاقة بالسؤال

مكتبات جافا المستخدمة في برمجة الأندرويد لها صلاحيات مختلفة عن مكتبات جافا العادية التي يقوم بالبرمجة بها حاليا (فهو يستخدم محاكي محلي كتطبيق اندرويد ينفذ برنامج جافا)

لم يسبق لي أن جربت تطبيقات java compiler على نظام الأندرويد لأتأكد إن ما كان يدعم المسار المطلق انطلاقا من storage/, فغالبا ما أستعمل termux. الرابط المشار إليه فقط لتأكيد أنه من الممكن لتطبيقات الأندرويد الوصول للجذر من دون الحاجة ل system root, ومنه الوصول إلى المسار المطلق إنطلاقا من تطبيق java compiler.

شكرا لك على الملاحظة @Wael Aljamal 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...