Fájlok olvasása és írása
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.