النتائج 46 إلى 60 من 68
الموضوع: EWrapper--رحلة مجهولة
- 27-03-2020, 11:58 PM #46
أدركت أمس ان input هي احضار المعلومة من مصدر خارجي--كان ملف نوتباد تكست txt وبالتالي هي input للبرنامج
لأنه للأسف input/output تبدو وجهين لعملة واحدة ويحدث فيها خربطة
لابد تفهم ايش ال Source وايش Destination (المصدر والمحطة النهائية)
السورس امس كان ملف التكست اللي نقرأ منه
وكانت المحطة النهائية هي الكونسول الذي نطبع فيه النتائج--يعني نعتبرها امس تجوزا ال desrination
والوسط او الوسيط بينهما هو البرنامج اللي نكتبه
وطالما امس ملف التكست مصدر
اذن اليوم سيكون destination لو استخدمنا دوال output
ونعني تحديدا OutputStream ---- FileOutputStream
يعني هذا اليوم سنكتب الى الملف
امس كنا نقرأ من الملف
لغة انجليزية:
يقرأ: read
يكتب: write
هل تذكر أهم دالة يوم امس؟؟ دالة read
- 28-03-2020, 12:11 AM #47
ربط ذهني:
من الرد #2:
فكان من أقدم كلاسات البرمجة-ونتحدث هنا عن الجافا- DataOutputStream و DataInputStream (وماشابه حسب لغات البرمجة الأخرى)
كنا مضطرين نتجاهل الحديث عنها حتى نتحدث عن مقدماتها
فتحدثنا عن نص مقدماتها امس ونكمل النص الاخر اليوم
يعني انت لكي تتحدث عن دوال الداتا لابد تعرف أولا دوال InputStream و OutputStream
ومن توابعها دوال الملفات FileInputStream و FileOutputStream
ليش؟
ج: بكل وضوح لأنها برامترز DataOutputStream و DataInputStream
هذا الرد لتكون الأمور واضحة في ذهنك ومرتبة
- 28-03-2020, 12:15 AM #48
- 28-03-2020, 12:23 AM #49
- 28-03-2020, 12:28 AM #50
لو سوينا كومبايل نتوقع نشوف في الكونسول نفس الكود المكتوب--خديعة عقلية ليس الا,
البرنامج:
الملف المرفق 521888
والناتج: (لأن المحتوى اسفل هو هكذا في ملف التكست)
الملف المرفق 521889
- 28-03-2020, 12:28 AM #51
الان لا نريد رؤية الناتج في الكونسول, بل في ملف تكست اخر,
يعني النسخ من ملف الى ملف
وليكن اسم الملف ملف جديد غير موجود مسبقا في جهازك, لترى ان البرنامج سينشئه اذا لم يوجد---اذا كان يوجد سيكتب عليه (وبالتالي انتبه للمكان والاسم--قد يكون لديك ملف نظام يصادف الاسم الذي اخترته)
دعنا نسميه salman.text -- يعني داخل البرنامج اسمه هكذا
نعرف كائن باسم salman_out من نوع OutputSream ولأنه أيضا abstract نتبع نفس خطوات امس حيث نستخدم تبيعه الكلاس FileOutputStream بالاداة new لانشائه
وبين قوسين اسم الملف الذي نريد الكتابة اليه
في سطر واحد: ننقل الكود التالي للبرنامج أعلاه:
كود:OutputStream salman_out = new FileOutputStream("D:\\salman.txt");
يعني نضيف السطرين لرأس البرنامج
كود:import java.io.OutputStream; import java.io.FileOutputStream;
آخر تعديل بواسطة سلمان_العتيبي ، 28-03-2020 الساعة 12:35 AM
- 28-03-2020, 12:36 AM #52
آخر تعديل بواسطة سلمان_العتيبي ، 28-03-2020 الساعة 12:40 AM
- 28-03-2020, 12:47 AM #53
نشيل System.out.println لانها تطبع للكونسول ونحط مكانها امر الطباعة الى الملف!!
طباعة الى الملف!! كيف؟
من خلال الكائن من نوع OutputStream واللي سميناه salman_out
ثم نقطة
ثم write
وداخلها المحتوى اللي كان موجود بين قوسي println سابقا
يعني هكذا:
كود:salman_out.write((char)i);
- 28-03-2020, 12:48 AM #54
ولأنه ملف--نغلقه كما فعلنا مع ملف المصدر
نستخدم close ولكن مع متغير الاوتبوت
كود:input.close();
- 28-03-2020, 12:49 AM #55
يصبح الكود ككل:
كود:import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.FileOutputStream; public class Example { public static void main(String[] args) throws FileNotFoundException,IOException { int i; InputStream input = new FileInputStream( "D:\\testout.txt"); OutputStream salman_out = new FileOutputStream("D:\\salman.txt"); while((i = input.read())!=-1) { salman_out.write((char)i); } input.close(); salman_out.close(); } }
ستجد ان البرنامج فتح ملفا جديدا وكتب فيه محتوى الملف الأصلي
- 28-03-2020, 12:52 AM #56
- 28-03-2020, 12:54 AM #57
- 28-03-2020, 12:59 AM #58
تتساءل--تريد تمرين؟
تخيل عندك سابقا ملف مهم جدا باسم salman.txt وفيه بيانات او معلومة مهمة جدا
وسهوا ومن خلال البرنامج أعلاه اردت كتابة محتوى ملف أخرى الى ملف باسم salman.txt ؟؟
هل سيسمح تلك البيانات السابقة في ملف salman.txt??
ام سيضيف عليها؟؟
ام سيتركها؟؟
دون تجربة سيمسحها لأنك في الكود أعلاه استخدمت انشاء كائن جديد --- new object من نوع OutputStream, الذي لاتراه انه ينشيء ملفا جديدا فارغا على الملف السابق!
- 28-03-2020, 01:02 AM #59
ماذا سيحدث لو شلت الكاستنق char داخل دالة write??
تحدثنا عنها يوم امس وعن ASCII
وقلنا ان ملف الاكسل الأصلي هو في الحقيقة بالنسبة للأجهزة سطر واحد طويل--ستريييييييييييييييييم
في حالة write هل ستطيع مشفرة؟ ام انه هنا لا
ج: ستطبع كما تراها في الملف الاصلي
ولكن لو طبعتها للكونسول سترى سطر طويل مشفر--وتستطيع فك تشفيره حسب جدول ASCIIآخر تعديل بواسطة سلمان_العتيبي ، 28-03-2020 الساعة 01:06 AM
- 28-03-2020, 01:08 AM #60