التدفق في لغة C#: قارئ التدفق والتدفقWriter [مثال]
⚡ ملخص ذكي
تُعدّ خاصية التدفق في AC# طبقة وسيطة بين تطبيقك والملف، تُمكّنك من قراءة البيانات أو كتابتها على دفعات صغيرة. ستتعلم هنا كيفية استخدام StreamReader وStream.Writer العمل، مع أمثلة وأنواع التيار الرئيسي.

ما هو تيار C#؟
في عمليات الملفات بلغة C#، تُستخدم التدفقات عادةً لقراءة الملفات وكتابتها. التدفق هو طبقة إضافية يتم إنشاؤها بين التطبيق والملف. يُستخدم التدفق لضمان عمليات قراءة وكتابة سلسة للملف.
تُستخدم التدفقات عادةً عند قراءة البيانات من الملفات الكبيرة. باستخدام التدفقات، يتم تقسيم البيانات من الملفات الكبيرة إلى أجزاء صغيرة وإرسالها إلى التدفق. يمكن بعد ذلك قراءة أجزاء البيانات هذه من التطبيق.
يرجع سبب تقسيمه إلى أجزاء صغيرة إلى تأثير قراءة ملف كبير في لقطة واحدة على الأداء. إذا كنت ستقرأ البيانات من ملف بحجم 100 ميجا بايت على سبيل المثال، دفعة واحدة، فقد يتعطل تطبيقك ويصبح غير مستقر. أفضل طريقة هي استخدام التدفقات لتقسيم الملف إلى أجزاء يمكن التحكم فيها.
لذا، عندما يتم تنفيذ عملية كتابة على ملف، تتم كتابة البيانات المراد كتابتها أولاً في التدفق. ومن التدفق، تتم كتابة البيانات بعد ذلك إلى الملف. وينطبق الأمر نفسه على عملية القراءة. في عملية القراءة، يتم نقل البيانات أولاً من الملف إلى التدفق. ثم تتم قراءة البيانات من التطبيق عبر التدفق. دعنا نلقي نظرة على مثال لكيفية القراءة والكتابة باستخدام التدفقات.
أنواع التدفقات في لغة C#
جميع فئات التدفق في لغة C# مشتقة من الفئة abstract Stream الطبقة في System.IO مساحة الاسم. يستهدف كل نوع مصدر بيانات مختلفًا، لكنهما يشتركان في نفس طرق القراءة والكتابة. فيما يلي قائمة بأكثر أنواع التدفقات استخدامًا.
- دفق الملف يقرأ من الملفات الموجودة على القرص ويكتب إليها، بايت واحد أو كتلة واحدة في كل مرة.
- تدفق الذاكرة يقوم بتخزين البيانات في الذاكرة بدلاً من الملف، وهو أمر مفيد للمخازن المؤقتة.
- BufferedStream يغلف دفقًا آخر لتقليل عدد عمليات القرص أو الشبكة البطيئة.
- بث الشبكة يرسل ويستقبل البيانات عبر مقبس الشبكة.
للعمل مع النصوص، توفر لغة C# StreamReader و StreamWriter الفئات المساعدة، التي تغلف التدفق، والتي سيتم تناولها في الأقسام التالية.
قارئ الدفق
يتم استخدام قارئ الدفق لقراءة البيانات من ملف باستخدام الدفق. تتم قراءة البيانات من الملف أولاً في الدفق. بعد ذلك يقرأ التطبيق البيانات من الدفق.
على سبيل المثال، سنفترض أن لدينا ملفًا في محرك الأقراص D يسمى example.txt. سيكون الملف عبارة عن ملف نصي بسيط ويحتوي على سطرين كما هو موضح أدناه
- Guru99 – .Net
- Guru99 - دو#
على سبيل المثال، سنقوم بإنشاء تطبيق وحدة تحكم بسيط ونعمل مع تدفقات الملفات
دعونا نلقي نظرة على مثال لكيفية استخدام التدفقات لقراءة البيانات من ملف. أدخل الكود أدناه في ملف Program.cs.
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; using (StreamReader sr = File.OpenText(path)) { String s = ""; while ((s = sr.ReadLine()) != null) { Console.WriteLine(s); } } Console.ReadKey(); } } }
Code تفسير:-
- أولاً، نعلن عن كائن قارئ الدفق. يتم استخدام كائن قارئ الدفق في لغة C# لتحديد دفق من الملف إلى التطبيق. سيتم دفع البيانات من الملف إلى الدفق عند قراءة البيانات من الملف. الملف.OpenText يُستخدم لفتح الملف "Example.txt" في وضع القراءة فقط. يتم بعد ذلك إرسال معالج الملف إلى كائن قارئ الدفق.
- بعد ذلك، نقوم بتعريف متغير مؤقت 's' والذي سيتم استخدامه لقراءة كافة البيانات من الملف.
- نستخدم بعد ذلك طريقة قارئ الدفق ReadLine لقراءة كل سطر من مخزن الدفق. عندما ننفذ هذه الطريقة عمليةسيتم نقل كل سطر أولاً من الملف إلى المخزن المؤقت. ثم سيتم نقل سطر السلسلة من المخزن المؤقت إلى المتغير 's'. ثم نكتب محتويات السلسلة 's' في وحدة التحكم.
عندما يتم تعيين الكود أعلاه، ويتم تشغيل المشروع باستخدام البصرية ستوديو، سوف تحصل على الناتج أدناه.
انتاج:-
من الإخراج، يمكنك أن ترى أن قارئ الدفق يقرأ كلا السطرين من الملف. وأخيرًا، تم إرسال أسطر السلسلة المقروءة من الدفق إلى وحدة التحكم.
شريط الاحداث Writer
يتم استخدام كاتب الدفق لكتابة البيانات إلى ملف باستخدام التدفقات. تتم كتابة البيانات من التطبيق أولاً في الدفق. بعد ذلك يكتب الدفق البيانات إلى الملف. دعونا نلقي نظرة على مثال لكيفية استخدام التدفقات لكتابة البيانات من ملف. أدخل الكود أدناه في ملف Program.cs.
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; using (StreamWriter sr = File.AppendText(path)) { sr.WriteLine("Guru99 - ASP.Net"); sr.Close(); Console.WriteLine(File.ReadAllText(path)); } Console.ReadKey(); } } }
Code تفسير:-
- أولاً، نعلن عن كائن كاتب الدفق. يتم استخدام كائن كاتب الدفق في C# لتعريف الدفق. يتم بعد ذلك استخدام الدفق لكتابة البيانات من التطبيق إلى الملف. سيتم دفع البيانات من التطبيق إلى الدفق عندما يلزم كتابة البيانات. يتم استخدام الأمر File.AppendText لفتح الملف "Example.txt" في وضع الإلحاق. يتم بعد ذلك إرسال معالج الملف إلى كائن كاتب الدفق.
- نستخدم طريقة الكتابة المتدفقة Writeline لكتابة السطر "Guru99 – ASP.Net” إلى الدفق. ومن الدفق، سيتم كتابة السطر إلى الملف.
- ثم نقوم بإغلاق كاتب الدفق بعد الكتابة إلى الملف. من الممارسات الجيدة عادةً إغلاق معالجات الملفات عندما لا يكون الملف مطلوبًا لأغراض الكتابة.
- أخيرًا، نقرأ محتويات الملف مرة أخرى ونكتبه في سجل وحدة التحكم. هذا للتحقق مما إذا كان السطر مكتوبًا في الملف.
عندما يتم تعيين الكود أعلاه، ويتم تشغيل المشروع باستخدام Visual Studio، سوف تحصل على الإخراج أدناه.
انتاج:-
من المخرجات، يمكنك أن ترى أن السطر "Guruتمت إضافة السطر "99 – ASP.Net" إلى الملف بنجاح. ويمكن رؤية جميع أسطر النص الثلاثة في وحدة التحكم.




