Fájlok olvasása és írása

Befejeződött

Az adatok beolvasása fájlokból, valamint adatok írása a fájlokba a .NET alapfogalmai közé tartoznak.

A Tailwind Tradersnek egy új fájlba kell írnia az összes egyes üzlet értékesítési fájlját, majd be kell töltenie a fájlt a vállalat értékesítési rendszerébe.

Itt megtudhatja, hogyan használhatja az osztályt a File fájlok olvasására és írására.

Adatok beolvasása fájlokból

A fájlok a File osztály ReadAllText metódusával olvashatók be.

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

A ReadAllText által eredményül adott objektum egy sztring.

{
  "total": 22385.32
}

Adatelemzés fájlokban

Az adatok sztringformátumban nem túl hasznosak. Továbbra is csak karakterek, de legalább már olvasható formátumban. Azt szeretné, hogy elemezni tudja az adatokat egy olyan formátumban, amelyet programozott módon használhat.

A .NET használatával többféleképpen is elemezhet JSON-fájlokat, például a Json.NET nevű közösségi könyvtár segítségével.

A Json.NET csomagot a NuGet használatával adhatja hozzá a projekthez:

dotnet add package Newtonsoft.Json

Ezután adja hozzá using Newtonsoft.Json az osztályfájl elejéhez:

using Newtonsoft.Json; 

És használja a JsonConvert.DeserializeObject következő módszert:

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; }
}

Tipp.

A fájlok különböző formátumúak lehetnek. JSON-fájlokkal a leginkább célszerű dolgozni a nyelv beépített támogatása miatt. Találkozhat .csv, rögzített szélességű és egyéb formátumokkal is. Ebben az esetben érdemes megkeresni az adott fájltípushoz tartozó elemzőt a nuget.org oldalon.

Adatok írása fájlokba

Megtanulta, hogyan írhat fájlokat az előző gyakorlatban; Csak egy üreset írt. Ha adatokat szeretne írni egy fájlba, használja ismét a WriteAllText metódust, de adja meg az írni kívánt adatokat.

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

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

// totals.txt
// 22385.32

Adatok hozzáfűzése fájlokhoz

Az előző példában a fájl felülíródik minden alkalommal, amikor Ön hozzáír valamit. Néha nem akarod. Az adatok hozzáfűzése a fájlhoz ahelyett, hogy teljes egészében lecserélte volna őket. Adatokat a File.AppendAllText metódussal fűzhet hozzá. Alapértelmezés szerint akkor hozza létre a fájlt, File.AppendAllText ha még nem létezik.

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

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

// totals.txt
// 22385.32
// 22385.32

Tipp.

Az előző kód példában a .NET kéri, Environment.NewLine hogy helyezze az értéket a saját sorába. Ha nem adná meg ezt az értéket, egyetlen sorban kapná meg az összes számot, egymás mellé sűrítve.

A következő gyakorlatban befejezi a Tailwind Traders értékesítési projektjét. Ehhez beolvassa az összes értékesítési fájlt, a végösszeget pedig egy .txt-fájlba írja. A cég kereskedelmi rendszere képes feldolgozni ezt a fájlt.