الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[فكرة] :إعادة توجيه جميع مخرجات برنامج Java نحو ملف

بدأه djug في 24 سبتمبر 2009 · 9 رد · 766 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدى كتابة برامج بلغة الـ java فإنه غالبا ما نبدأ في إظهار بعد النتائج على الـ console لنعرف إن كانت عملية ما قد تمت بصورة صحيحة،

لكن أحيانا لما تكثر هذه المخرجات و تتعدى بضع الآلاف (و أحيانا بعض المئات) فإنه من الصعب قراءتها من الـ console إما لأن لون الـ console غير مريح أو أن كثرة المخرجات جعل من المستحيل قراءة أولى البيانات (عدد الأسطر التي يمكن قراءتها في الـ console محدود و لهذا عندما يتم تجاوز حد ما فإنه يتم حذف السطور الأولى)

و عليه فإنه أول ما يتبادر إلى ذهنك هو كتابة النتائج في ملف نصي لقراءتها لاحقا

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

System.setOut(new PrintStream(new FileOutputStream("c:\\out.txt")));
System.setErr(new PrintStream(new FileOutputStream("c:\\error.txt")));

حيث أن السطر الأول سيوجه جميع المخرجات الطبيعية إلى الملف

c:\out.txt

أما الثاني فسيرسل جميع رسالات الخطأ إلى المل

c:\error.txt

#2

هناك أيضا إمكانية استعمال الكلاس Logger، لكن هذه طريقة بسيطة وممكن تفيد في كثير من الحالات

شكرا :wub:

#3

أو ممكن أن تفعل الأتي عند تنفيذ الجهاز (على اليونكس, لا أعلم كيف يتم ذلك على الويندوز)

اقتباس
java MyProgram >> /path/to/file.txt

ولكن أفضل طريقه هل استخدام ال logging, سواء log4j أو Java Logging أو أي مكتبه أخري

#4
اقتباس
أو ممكن أن تفعل الأتي عند تنفيذ الجهاز (على اليونكس, لا أعلم كيف يتم ذلك على الويندوز)

نعم هي موجودة في النظامين أو في أي سطر أوامر ، وتسمى redirection سواء للمدخلات أو المخرجات ..

في ويندوز :

java YourClass > outputFile.txt

وستجد أن أي عملية طباعه System.out. ستكون في ملف الoutputFile ..

اذا كان لديك مدخلات من الكيبورد يمكن أن تقرأ أيضا من الملف مباشره :

java YourClass < inputFile.txt

ويمكن دمج الإثنين مع بعض ، كنت استخدمها في سي++ :

java YouClass < inputFile.txt > outputFile.txt

فائده الRedirection للمدخلات مهم جدا في التجربه .. تخيل لو كان لديك مصفوفه من 10 خانات وتريد ادخال قيم بشكل يدوي لكي تقوم بمهمه ما .. في كل مره تشغل البرنامج سوف تضطر الى اعادة الإدخال مرة أخرى .. وهكذ أمر ممل ومتعب خصوصا لو كنت تبرمج بطريقة Trial and Error :) .. لذلك الRedirection للمدخلات مهم جدا ويجعلك تركز في مشكلتك وليس في ادخال ال10 مدخلات كل مرة :) .

هذه الخاصية يقوم بها نظام التشغيل أو سطر الأوامر Shell/Command Line وليس للغه دخل بها .

بالتوفيق :) ،

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#5

أعرف أن أنظمة التشغيل تسمح بعمل redirection لأمر ما ليظهر المحتوى في ملف آخر

لكن هل جربها أحدكم مع برامج الـ java لأن الأمر لا ينجح معي

#6

الredirection تعمل أيضا مع برامج الجافا، الأمر مجرب

#7

eclipse يمكنني من ذلك ببساطة

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#8
اقتباس
eclipse يمكنني من ذلك ببساطة

كيف؟

#9

run configuration >> common >>slandered input and output

علم المربع المسمى file

ثم اضغط على file system واختار الملف الذي تريد طباعة المخرجات عليه

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#10

جزاك الله خيرا أخي علاء

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…