التعامل مع الملفات
جزء من قسم Logic & Flow في رحلة C# على Coddy — الدرس 26 من 66.
في لغة C#، يمكنك العمل مع الملفات باستخدام فئات من مساحة الاسم System.IO. الفئتان الرئيسيتان لملفات النصوص هما StreamReader (للقراءة) و StreamWriter (للكتابة).
الكتابة إلى ملف:
using System.IO;
// إنشاء StreamWriter للكتابة إلى ملف
StreamWriter writer = new StreamWriter("myfile.txt");
// كتابة نص إلى الملف
writer.WriteLine("Hello, World!");
writer.WriteLine("This is line 2");
// إغلاق الملف
writer.Close();القراءة من ملف:
using System.IO;
// إنشاء StreamReader للقراءة من ملف
StreamReader reader = new StreamReader("myfile.txt");
// قراءة كل المحتوى من الملف
string content = reader.ReadToEnd();
Console.WriteLine(content);
// إغلاق الملف
reader.Close();القراءة سطراً بسطر:
StreamReader reader = new StreamReader("myfile.txt");
// قراءة السطر الأول
string line1 = reader.ReadLine();
Console.WriteLine(line1);
// قراءة السطر الثاني
string line2 = reader.ReadLine();
Console.WriteLine(line2);
reader.Close();تذكر دائمًا إغلاق ملفاتك باستخدام Close() عندما تنتهي!
التحدي
سهلقم بإنشاء دالة تسمى ReadFile تقوم بما يلي:
- تأخذ بارامتر واحد من نوع string:
filename - تقرأ المحتوى من الملف باستخدام
StreamReader - تطبع المحتوى على الكونسول
- تغلق القارئ
ورقة مرجعية
تعامل مع الملفات باستخدام مساحة الأسماء System.IO. استخدم StreamWriter للكتابة و StreamReader للقراءة.
الكتابة إلى ملف:
StreamWriter writer = new StreamWriter("myfile.txt");
writer.WriteLine("Hello, World!");
writer.Close();القراءة من ملف:
StreamReader reader = new StreamReader("myfile.txt");
string content = reader.ReadToEnd();
Console.WriteLine(content);
reader.Close();القراءة سطراً بسطر:
StreamReader reader = new StreamReader("myfile.txt");
string line = reader.ReadLine();
Console.WriteLine(line);
reader.Close();الأساليب الرئيسية:
WriteLine(text)- كتابة سطر في الملفReadToEnd()- قراءة كل النص من الملفReadLine()- قراءة سطر واحد من الملفClose()- إغلاق الملف (افعل ذلك دائماً!)
جرّب بنفسك
using System;
using System.IO;
class Program
{
public static void ReadFile(string filename)
{
// اكتب كودك هنا
}
static void Main(string[] args)
{
string filename = Console.ReadLine();
ReadFile(filename);
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادتعريف وتهيئة المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادالمصفوفات المتعرجة (Jagged Arrays)عمليات المصفوفات الشائعةمراجعة - المصفوفات متعددة الأبعاد4تقنيات التحكم في التدفق
الإرجاع المبكرشروط الحمايةجمل القفز (goto)Break و Continueتسطيح الشروط المتداخلة7المعاملات المنطقية المتقدمة
التقييم المختصرالمعاملات المنطقية الشرطيةأولوية المعاملاتمراجعة - المعاملات المتقدمة2اتخاذ القرارات المتقدم
الشروط المتعددةالمنطق البولياني المعقدمقارنة بين If و Switchجمل Switch المتداخلةمراجعة - القرارات المتقدمة5معالجة الاستثناءات
أساسيات Try-Catchأنواع الاستثناءاتكتل Catch المتعددةالتعامل مع الملفاتكتلة FinallyUsing مقابل Try-Finallyاستثناءات مخصصةمراجعة - معالجة الأخطاء8نظام تحليل البيانات
إعداد جمع البياناتمنطق إدخال البيانات11HashSet الجزء الأول
ما هو الـ HashSet؟إضافة عنصرحذف عنصرالتحقق من وجود عنصرالفراغ والحجمملخص - HashSet3تحسينات الحلقات التكرارية
أداء الحلقات التكراريةالتكرار عبر البيانات المعقدةأنواع الحلقات التكراريةإعادة هيكلة الحلقات التكراريةملخص - الحلقات المحسنة6التعامل مع الـ Null
أساسيات الـ Null Referenceأنواع القيم القابلة للـ Nullأنماط التحقق من الـ Nullالبرمجة الدفاعيةملخص - أمان الـ Null