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

مكتمل

تعد قراءة البيانات من الملفات وكتابة البيانات إلى الملفات من المفاهيم الأساسية في .NET.

تحتاج Tailwind Traders إلى كتابة إجمالي جميع ملفات مبيعات المتجر الفردية إلى ملف جديد، ثم تحميل الملف في نظام مبيعات الشركة.

هنا، ستتعلم كيفية استخدام File الفئة لقراءة الملفات والكتابة إليها.

قراءة البيانات من الملفات

تتم قراءة الملفات من خلال الأسلوب ReadAllText على الفئة File.

File.ReadAllText($"stores{Path.DirectorySeparatorChar}201{Path.DirectorySeparatorChar}sales.json");

عنصر الإرجاع من ReadAllText هو سلسلة.

{
  "total": 22385.32
}

تحليل البيانات في الملفات

لا تفيدك هذه البيانات في تنسيق السلسلة كثيرًا. لا تزال مجرد أحرف، ولكنها الآن في تنسيق يمكنك قراءته. تريد القدرة على تحليل هذه البيانات إلى تنسيق يمكنك استخدامه برمجيًا.

هناك العديد من الطرق لتحليل ملفات JSON باستخدام .NET، بما في ذلك مكتبة المجتمع المعروفة باسم Json.NET.

يمكنك إضافة حزمة Json.NET إلى مشروعك باستخدام NuGet:

dotnet add package Newtonsoft.Json

ثم قم بإضافة using Newtonsoft.Json إلى أعلى ملف الفئة:

using Newtonsoft.Json; 

واستخدام JsonConvert.DeserializeObject الأسلوب:

var salesJson = File.ReadAllText($"stores{Path.DirectorySeparatorChar}201{Path.DirectorySeparatorChar}sales.json");
var salesData = JsonConvert.DeserializeObject<SalesTotal>(salesJson);

Console.WriteLine(salesData.Total);

class SalesTotal
{
  public double Total { get; set; }
}

تلميح

تأتي الملفات في مجموعة متنوعة من التنسيقات. ملفات JSON هي أكثر الملفات المرغوب فيها للعمل معها بسبب الدعم المدمج في اللغة. قد تواجه أيضًا ملفات .csv أو عرضًا ثابتًا أو بعض التنسيقات الأخرى. في هذه الحالة، من الأفضل البحث في nuget.org عن محلل لهذا النوع من الملفات.

اكتب البيانات إلى الملفات

لقد تعلمت كيفية كتابة الملفات في التمرين السابق؛ انها مجرد أنك كتبت واحدة فارغة. لكتابة البيانات إلى ملف، استخدم الأسلوب WriteAllText نفسه، ولكن قم بتمرير البيانات التي تريد كتابتها.

var data = JsonConvert.DeserializeObject<SalesTotal>(salesJson);

File.WriteAllText($"salesTotalDir{Path.DirectorySeparatorChar}totals.txt", data.Total.ToString());

// totals.txt
// 22385.32

إلحاق بيانات بالملفات

في المثال السابق، يتم الكتابة فوق الملف في كل مرة تكتب فيها إليه. في بعض الأحيان، لا تريد ذلك. تريد إلحاق البيانات بالملف بدلا من استبدالها بالكامل. يمكنك إلحاق البيانات باستخدام الأسلوب File.AppendAllText. بشكل افتراضي، File.AppendAllText ينشئ الملف إذا لم يكن موجودا بالفعل.

var data = JsonConvert.DeserializeObject<SalesTotal>(salesJson);

File.AppendAllText($"salesTotalDir{Path.DirectorySeparatorChar}totals.txt", $"{data.Total}{Environment.NewLine}");

// totals.txt
// 22385.32
// 22385.32

تلميح

في مثال الكود السابق ، تطالب Environment.NewLine .NET بوضع القيمة في السطر الخاص بها. إذا لم تجتز هذه القيمة، فستحصل على جميع الأرقام مجمعة معًا على نفس الخط.

في التمرين التالي، سوف تنتهي من مشروع إجمالي المبيعات لشركة Tailwind Traders بقراءة جميع ملفات المبيعات وكتابة الإجمالي الكلي إلى ملف .txt. يمكن أن يقوم النظام التجاري للشركة بمعالجة الملف بعد ذلك.