جاري التحميل...

كتابة ملف في Java

افتح Store.java واكتب حروفًا داخل note.txt بـ FileWriter. ضع tea مع سطر جديد في الملف، ثم close للكاتب. ترجم بـ javac Store.java وشغّل java Store. الشاشة تبقى فارغة — الحروف تذهب إلى الملف لا إلى الطرفية. عرض ثانٍ يكتب oak بنفس الأسلوب ويستبدل ما كان داخل الملف. اترك موضوع Paths للصفحة التالية؛ هذا الدرس يخزّن نصًا قصيرًا فقط بـ FileWriter.

احفظ tea وابقَ الشاشة فارغة

فتحت صفحة القراءة ملفًا كان يحتوي أصلًا على oak. هذه الصفحة تنشئ أو تستبدل ذلك النص من البرنامج نفسه. افتح ملفًا تعليميًا باسم Store.java. أبقِ اسم الفئة العامة Store ليطابق اسم الملف. احذف عروض Scanner المتبقية من Reader، وأسطر رمي Signal، وكتل catch من Guard، وأي Scanner على System.in. لا يجب أن ينتظر البرنامج الكتابة. هذه الصفحة تحتاج أسطر import للكتابة لا للقراءة.
قرب الأعلى أبقِ:
import java.io.FileWriter;
import java.io.IOException;
علّم main بـ throws IOException حتى يمكن لكتابة فاشلة أن تغادر main كاستثناء مُدقّق. داخل main افتح اسم القرص للكتابة:
FileWriter out = new FileWriter("note.txt");
اكتب سطرًا قصيرًا مع السطر الجديد:
out.write("tea\n");
ثم أنهِ الحفظ:
out.close();
لا تستدعِ System.out.println في هذا الملف التعليمي الأول. الشاشة الفارغة جزء من الدرس: الكتابة ليست مثل الطباعة.

Store writes tea into note.txt

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

public class Store {
    public static void main(String[] args) throws IOException {
        FileWriter out = new FileWriter("note.txt");
        out.write("tea\n");
        out.close();
    }
}

من المجلد الذي يجب أن يحتوي note.txt بعد التشغيل، نفّذ javac Store.java. عندما تتطابق الأقواس والمعقوفات والفاصلة المنقوطة، لا يطبع javac سطرًا من عنده. ثم شغّل java Store — وليس java Store.java. اترك لاحقة .java خارج أمر التشغيل. إن لم يجد javac FileWriter، فسطر import ناقص أو مكتوب خطأ — أعده قبل مطاردة أخطاء أخرى.
الطرفية تبقى فارغة. هذا صحيح. افتح note.txt في محرر بعد التشغيل ويجب أن ترى tea في السطر الأول. إن طبعت الطرفية oak أو انتظرت لوحة المفاتيح، فلا يزال لديك بقايا Reader — انتقل إلى java Store. إن رأيت empty من IllegalArgumentException، فبقايا Signal لا تزال فعّالة. إن رأيت blocked أو after، فبقايا Guard هي الصنف الذي تشغّله.
close ينهي الحفظ. قبل close لا تعتبر السطر محفوظًا بأمان. بعد close تبقى الحروف في note.txt عند انتهاء البرنامج. لا حاجة لحديث الوضع من لغات أخرى: مُنشئ FileWriter هذا يفتح الاسم للكتابة ويستبدل المحتوى الأقدم إن وُجد. إنشاء note.txt عند غيابه جزء من سلوك الفتح للكتابة نفسه. لا تستدعِ Scanner أو nextLine أثناء التخزين؛ فهما للقراءة.
امشِ التشغيل مرة. يبدأ Java عند Store.main. يفتح FileWriter note.txt للكتابة. يضع write قيمة tea وسطرًا جديدًا. ينهي close الكاتب. لا شيء يطبع. إن تخطيت close وأوقفت البرنامج مبكرًا قد يبدو الملف ناقصًا — أبقِ close في الملف التعليمي. شغّل البرنامج من المجلد الذي تريد أن يظهر فيه note.txt حتى يُحلّ الاسم البسيط بجانب ملف الصنف.

كتابة لاحقة تستبدل الحروف الأقدم

يبدأ برنامج ثانٍ من جديد بنفس الشكل. ما زال يستخدم FileWriter على note.txt، لكن النص oak بدل tea.

Store writes oak and replaces

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

public class Store {
    public static void main(String[] args) throws IOException {
        FileWriter out = new FileWriter("note.txt");
        out.write("oak\n");
        out.close();
    }
}

ترجم بـ javac Store.java، ثم شغّل java Store. الشاشة تبقى فارغة مجددًا. بعد هذا التشغيل يحتوي note.txt على oak لا tea. استُبدل السطر الأقدم. هذا التباين مع أدوات الإلحاق التي لا تستخدمها هنا — كتابة هذا المُنشئ تعيد محتوى الملف لبداية جديدة في قصة التدريس. تهجئة اسم الملف يجب أن تطابق ما تنوي فتحه لاحقًا: note.txt.
يمكنك التأكد بعرض Reader من الصفحة السابقة إن كان لا يزال لديك: قراءة note.txt بعد كتابة oak يجب أن تطبع oak. لا حاجة للصق Reader داخل Store.java. أبقِ الكتابة والقراءة في ملفين تعليميين منفصلين. برنامج يكتب وآخر يقرأ؛ ذلك الفصل يُبقي كل شاشة صادقة.
لا تخترع واجهة Paths في هذه الصفحة. أنت تكتب سلسلة اسم بسيطة "note.txt" بجانب ملف الصنف. الصفحة التالية عن المسارات كموضوع مستقل. لا تجعل المجلد المفقود لغز اليوم — أبقِ مجلد العمل حيث تترجم وتشغّل.

مقارنة مع القراءة على Reader

في صفحة الملفات، طبع java Reader سطرًا كان على القرص، أو توقف بـ FileNotFoundException لاسم مفقود. في هذه الصفحة، يضع java Store الحروف بنفسه. القراءة والكتابة وظيفتان مختلفتان. أبقِ ملفات Reader قريبة كتاريخ عندما تريد التحقق مما وُضع؛ شغّل java Store لعروض الكتابة.
FileWriter وwrite رمزان جديدان. close ما زال مهمًا كما كان Scanner.close عند القراءة. تخطي close خطأ شائع بعد ترجمة ناجحة.

ما تتركه هذه الصفحة لـ paths

تخزّن هذه الصفحة نصًا قصيرًا باسم ملف بسيط بجانب الصنف. الصفحة التالية تقدّم المسارات بدقة أكبر. ابقَ مع FileWriter وwrite وclose هنا. لا تضف كائنات مسار كمتطلب على عروض Store بعد.

قبل paths

يمكنك كتابة tea في note.txt ورؤية شاشة فارغة بينما الملف يحتفظ بذلك السطر. يمكنك كتابة oak بعدها واستبدال النص الأقدم. ترجم Store.java وشغّل java Store لكل عرض بالتتابع. افتح الملف النصي في محرر للتأكد. الصفحة التالية paths حيث تركز الأسماء والمواقع.
أبقِ كتابة tea لأول حفظ واضح، وoak لاستبدال واضح، وواجهات المسار بعيدًا عن هذه الصفحة. عندما يظهر oak في note.txt بعد التشغيل الثاني لـ java Store، أنجزت كتابة الملف عملها واستعدت لموضوع المسارات.

🧠 اختبر معرفتك

جاهز للبدء

اختبر معرفتك

تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع

❓
6
الأسئلة
🎯
70%
للنجاح
♾️
∞
الوقت
🔄
∞
المحاولات

📝 التعليمات

  • اقرأ كل سؤال بعناية
  • اختر أفضل إجابة لكل سؤال
  • يمكنك إعادة الاختبار عدة مرات كما تريد
  • سيتم عرض تقدمك في الأعلى