قراءة وكتابة الملفات
File I/O
تطبيق
~25 دقيقة
قراءة وكتابة الملفات — File I/O
التعامل مع الملفات مهارة أساسية في أي لغة. Go توفر حزماً قوية وبسيطة: os للعمليات الأساسية، bufio للقراءة المُخزنة، وio لعمليات الإدخال/الإخراج العامة.
قراءة ملف كاملاً
أبسط طريقة لقراءة ملف:
main.go
Output:
القراءة سطراً بسطر
للملفات الكبيرة، القراءة سطراً بسطر أفضل من تحميل الملف كاملاً:
main.go
Output:
الكتابة المتقدمة
main.go
Output:
الإلحاق بملف (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
Output:
التعامل مع المجلدات
main.go
Output:
نصائح مهمة
- دائماً استخدم
defer file.Close()— لضمان إغلاق الملف - تحقق من الأخطاء — كل عملية ملفات قد تفشل
- استخدم
bufioللملفات الكبيرة — لا تحمّل ملف 1GB في الذاكرة - أذونات الملفات:
0644= القراءة/الكتابة للمالك، القراءة فقط للباقين os.ReadFile/os.WriteFileللعمليات البسيطة،os.Open/os.Createللتحكم الكامل
تحدي — Challenge
اكتب واقرأ ملف، ثم عُد عدد الأسطر