C # Stream bemutató: StreamReader, StreamWriter a példával

Tartalomjegyzék:

Anonim

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: -

  1. 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.
  2. Ezután meghatározunk egy ideiglenes változót, amelyet a fájl összes adatának kiolvasására használunk.
  3. 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: -

  1. 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.
  2. 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.
  3. 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.
  4. 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.