/Java Programming: Let's master 8/iii

Java Programming: Let's master 8/iii

النهارده معادنا نكمل شابتر 8 ونتكلم في أهم جزء واللي بيتكلم عن الـ text I/O..

8.7. The File Class

طريقة حفظ البيانات في متغيرات مع الأسف بتضيع بمجرد انتهاء البرنامج  وعلشان احافظ علي البيانات دي هحفظها في ملف موجود علي الهارد او علي cd . هنا هنعرف نعمل ازاي ملف . وهنا أحب أتكلم عن مفهوم مهم جدا لازم يكون معانا وفاهمينه قبل الشغل العملي..

الجافا يا جماعة مش بتتعامل مباشر مع الفايل.. لا، الجافا بتشتق أوبجكت من كلاس File والاوبجكت دا بنستضيف جواه فايل معين دوت تكست أو صورة أو أ..و والنهاردا تعاملنا كله مع الملفات النصية.. المهم اني لما احب اتعامل مع الفايل دا،، بتعامل مع الأوبجكت اللي من النوع File اللي انا مستضيف الفايل المطلوب جواه.. (مهم للغاية)

لو انت بتشتغل ويندوز ممكن دا يكون مسار فايل على الهارد معاك  c:\book\Welcome.java ده يعتبر الإسم الكامل للملف اللي اسمه Welcome.java ..

و c:\book  ده اسمه directory path .

ولو بتشتغل لينكس ممكن دا يكون مسار

/media/some_partition/some_folder/text.txt

ونفس الكلام بالنسبة لإسم الفايل والـ Directory path..

ودا الـ UML بتاع كلاس File.. تقدر تطلع على الميثودس والمتغيرات اللي جواه..

اسم الملف بيبقي string علشان اعمل ملف جديد بقوله

وبنسخدم \\ لأن \ حرف خاص .

طبعا لازم نقرأ الـ UML كويس ونعرف الميثودس دي بتعمل ايه قبل ما نقرأ المثال 🙂

ده مثال علي عمل file object وبعض الميثودس اللي في الكلاس:


 

8.8. Text I/O

عرفنا ازاي نعمل ملف ولكن كلاس File مش بيوفر ميثودس علشان ادخل او اخرج منه بيانات وعلشان نعمل كده محتاجين نستخدم كلاسات تانية .

8.8.1. Writing Data Using PrintWriter

كلاس java.io.PrintWriter بنستخدمه علشان نكتب بيانات في ملف من نوع txt :

هنا نقدر نستخدم ميثودس print, println و printf :

هنعمل مثال بيكتب سطرين في ملف اسمه “scores.txt”

ملحوظة: سيتم شرح الكلمة throws Exception لاحقاً في الشابتر الخاص بـ Handling Exceptions.

ولكن لابد كتابتها في ميثود main هنا لتفادي حدوث أخطاء..

نلاحظ هنا ان ميثود close لازم نستخدمها وإلا البيانات مش هيتم حفظها مظبوط في الملف.

8.8.2. Reading Data Using Scanner

علشان نقري البيانات هنستخدم كلاس java.util.Scanner واحنا استخدمناه قبل كده علشان نقري البيانات من شاشة الكونسول هنا هنقري من الملف :

وطبعا دا الـ UML بتاع كلاس Scanner.

ملحوظة :: الفاصل الإفتراضي في الجافا بين البيانات هي المسافة لو حبينا نغيرها ممكن نستخدم ميثود (useDelimiter(String regex  لتحديد اي فاصل تاني وطبعا نراعي انه مش يكون حرف مستخدم في الكتابة داخل الملف.

  لحد هنا نكون خلصنا الجزء الخاص بالـ Text I/O ..

 الجزء دا يا جماعة مهم جدا في الشغل العملي.. والناس لازم تكود عليه بنفسها.. وأي أخطاء أو استفسارات انا موجود معاكم تبعتولي على الميل أو تويتر ونعرف ونصحح الأخطاء سوا..

It’s totally free to share

Thanks @CATReloaded

Thanks @CATaZinelive

@om4rezz