A C # fájlműveletek során általában streameket használnak a fájlok olvasására és írására. A folyam egy további réteg, amely egy alkalmazás és egy fájl között jön létre. A folyamot a fájl olvasási és írási műveleteinek biztosítására használják.
Az adatfolyamokat általában nagy fájlok adatainak olvasásakor használják. A folyamok használatával a nagy fájlok adatait apró darabokra bontva továbbítják a patakba. Ezek az adatrészek azután kiolvashatók az alkalmazásból.
Az apró darabokra bontás oka az, hogy a nagy fájlokat egyetlen lövéssel elolvassa. Ha egy mondatból, 100 MB-os fájlból olvassa el az adatokat egy lövés alatt, az alkalmazása lóghat és instabillá válhat. A legjobb megközelítés az, ha adatfolyamokkal bontja a fájlt kezelhető darabokra.
Tehát amikor a fájlon írási műveletet hajtanak végre, az írandó adatokat először a folyamba írják. Az adatfolyamból az adatokat ezután a fájlba írják. Ugyanez vonatkozik az olvasási műveletre is. Az olvasási művelet során az adatokat először a fájlból továbbítják az adatfolyamba. Ezután az adatokat az alkalmazás a folyamon keresztül kiolvassa. Nézzünk meg egy példát arra, hogyan tudunk olvasni és írni a streamek segítségével.
Ebben az oktatóanyagban megtanulja-
- Patakolvasó
- Stream Writer
Patakolvasó
Az adatfolyam-olvasót fájlok adatainak leolvasására használják folyamok segítségével. A fájl adatai először beolvasásra kerülnek az adatfolyamba. Ezt követően az alkalmazás beolvassa az adatokat a folyamból.
Példánkban feltételezzük, hogy van egy fájl a D meghajtóban, az Example.txt nevet. A fájl egyszerű szöveges fájl lesz, és 2 soros lesz, az alábbiak szerint
- Guru99 - .Net
- Guru99 -C #
Példaként létrehozunk egy egyszerű Console alkalmazást, és a File streamekkel dolgozunk
Nézzünk meg egy példát arra, hogyan használhatjuk az adatfolyamokat egy fájl adatainak olvasására. Írja be az alábbi kódot a program.cs fájlba.
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();}}}
Kód Magyarázat: -
- Először egy streamolvasó objektumot deklarálunk. Az adatfolyam-olvasó objektumot C # formátumban használjuk a fájl és az alkalmazás közötti adatfolyam meghatározására. Az adatok a fájlból az adatfolyamba kerülnek, amikor az adatok beolvasásra kerülnek a fájlból. A File.OpenText segítségével az "Example.txt" fájl csak olvasható módban nyitható meg. A fájl kezelőjét ezután elküldi a folyamolvasó objektumnak.
- Ezután meghatározunk egy ideiglenes változót, amelyet a fájl összes adatának kiolvasására használunk.
- Ezután a folyamolvasó ReadLine módszerét használjuk az egyes sorok leolvasására a stream pufferből. Amikor ezt a műveletet elvégezzük, minden sor először átkerül a fájlból a pufferbe. Ezután a karakterlánc sor átkerül a pufferből az 's' változóba. Ezután beírjuk a 's' karakterlánc tartalmát a konzolra.
Amikor a fenti kód be van állítva, és a projekt a Visual Studio segítségével fut, akkor az alábbi kimenetet kapja.
Kimenet:-
A kimenetből láthatja, hogy a Stream Reader beolvasta a fájl mindkét sorát. Végül a streamből leolvasott karakterlánc sorait elküldtük a konzolnak.
Stream Writer
Az adatfolyam-író segítségével adatokat lehet fájlokba írni patakok segítségével. Az alkalmazásból származó adatokat először beírják az adatfolyamba. Ezt követően az adatfolyam beírja az adatokat a fájlba. Nézzünk meg egy példát arra, hogyan használhatunk adatfolyamokat fájlok adatainak írásához. Írja be az alábbi kódot a program.cs fájlba.
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();}}}
Kód Magyarázat: -
- Először egy stream író objektumot deklarálunk. A stream író objektumot a C # formátumban használjuk egy adatfolyam meghatározására. Ezután a folyam segítségével adatokat lehet írni az alkalmazásból a fájlba. Az adatok az alkalmazásból az adatfolyamba kerülnek, amikor csak adatokat kell írni. A File.AppendText paranccsal nyitható meg az "Example.txt" fájl függelék módban. Ezután a fájl kezelőjét elküldjük a stream író objektumnak.
- A Writeline adatfolyam-írási módszerrel írjuk a "Guru99 - ASP.Net" sort az adatfolyamba. A folyamból a sort ezután a fájlba írja.
- Ezután bezárjuk az adatfolyam íróját, miután a fájlba írtunk. Általában bevett gyakorlat a fájlkezelők bezárása, ha a fájlra már nincs szükség írási célokra.
- Végül újra elolvassuk a fájl tartalmát, és beírjuk a konzol naplójába. Ez annak ellenőrzésére szolgál, hogy a sort írták-e a fájlba.
Amikor a fenti kód be van állítva, és a projekt a Visual Studio segítségével fut, akkor az alábbi kimenetet kapja.
Kimenet:-
A kimenetből láthatja, hogy a "Guru99 - ASP.Net" sort sikeresen hozzáadták a fájlhoz. A szöveg mind a 3 sora látható a konzolon.
Összegzés
- A folyamok az alkalmazás és a fájl közötti középszintnek számítanak.
- A StreamReader akkor használható, amikor az adatokat fájlból kell olvasni.
- Streamwritert használnak, amikor az adatokat fájlba kell írni.