قراءة البيانات من الملفات
يمنحك C# عدة طرق لقراءة النص من ملف. يعتمد الخيار الأفضل على حجم الملف وما تريد فعله به.
قراءة الملف بأكمله في وقت واحد
File.ReadAllText() إرجاع الملف بأكمله كسلسلة واحدة.
string contents = File.ReadAllText("notes.txt");
Console.WriteLine(contents);
يعمل هذا الأسلوب بشكل جيد مع الملفات الصغيرة، ولكن بالنسبة للملفات الكبيرة جدا، فإنه يقوم بتحميل كل شيء في الذاكرة في وقت واحد.
ملحوظة
إذا لم يكن الملف موجودا، يقوم كل من File.ReadAllText() وStreamReader بطرح FileNotFoundException. تأكد من وجود الملف قبل محاولة قراءته.
قراءة الملف كمصفوفة من الأسطر
File.ReadAllLines() إرجاع كل سطر كسلسلة منفصلة في صفيف.
string[] lines = File.ReadAllLines("notes.txt");
foreach (string line in lines)
{
Console.WriteLine(line);
}
قراءة سطر واحد في كل مرة
الطريقة الأكثر ملاءمة للذاكرة هي استخدام StreamReader واستدعاء .ReadLine() في حلقة. يعود null بمجرد عدم وجود المزيد من الأسطر للقراءة.
using StreamReader reader = new StreamReader("notes.txt");
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
يوصى بهذا النمط للملفات الكبيرة لأنه يتم الاحتفاظ بخط واحد فقط في الذاكرة في كل مرة.
اختيار النهج الصحيح
| إذا كنت تريد ... | استخدم... |
|---|---|
| العمل مع الملف بأكمله كسلسلة واحدة | File.ReadAllText() |
| الحصول على صفيف من الأسطر التي يمكنك الفهرسة فيها | File.ReadAllLines() |
| معالجة كل سطر على حدة بكفاءة | StreamReader مع ReadLine() |