AzLearn

قراءة وكتابة الملفات

File I/O

تطبيق ~25 دقيقة

قراءة وكتابة الملفات — File I/O

التعامل مع الملفات مهارة أساسية في أي لغة. Go توفر حزماً قوية وبسيطة: os للعمليات الأساسية، bufio للقراءة المُخزنة، وio لعمليات الإدخال/الإخراج العامة.

قراءة ملف كاملاً

أبسط طريقة لقراءة ملف:

main.go

القراءة سطراً بسطر

للملفات الكبيرة، القراءة سطراً بسطر أفضل من تحميل الملف كاملاً:

main.go

الكتابة المتقدمة

main.go

الإلحاق بملف (Append)

// فتح ملف للإلحاق — Open for append
file, err := os.OpenFile("log.txt", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
    log.Fatal(err)
}
defer file.Close()

file.WriteString("سطر جديد\n")

أعلام os.OpenFile:

العلمالمعنى
os.O_RDONLYقراءة فقط
os.O_WRONLYكتابة فقط
os.O_RDWRقراءة وكتابة
os.O_CREATEإنشاء إذا لم يوجد
os.O_APPENDإلحاق بالنهاية
os.O_TRUNCمسح المحتوى

مشروع: معالج ملفات CSV بسيط

main.go

التعامل مع المجلدات

main.go

نصائح مهمة

  1. دائماً استخدم defer file.Close() — لضمان إغلاق الملف
  2. تحقق من الأخطاء — كل عملية ملفات قد تفشل
  3. استخدم bufio للملفات الكبيرة — لا تحمّل ملف 1GB في الذاكرة
  4. أذونات الملفات: 0644 = القراءة/الكتابة للمالك، القراءة فقط للباقين
  5. os.ReadFile/os.WriteFile للعمليات البسيطة، os.Open/os.Create للتحكم الكامل
تحدي — Challenge