C # Stream Tutorial: StreamReader, StreamWriter s příkladem

Obsah:

Anonim

V operacích se soubory C # se běžně používají streamy ke čtení a zápisu do souborů. Stream je další vrstva vytvořená mezi aplikací a souborem. Stream se používá k zajištění plynulých operací čtení a zápisu do souboru.

Při čtení dat z velkých souborů se obvykle používají streamy. Pomocí streamů jsou data z velkých souborů rozdělena na malé kousky a odeslána do streamu. Tyto bloky dat lze poté načíst z aplikace.

Důvodem jeho rozdělení na malé kousky je vliv na výkon čtení velkého souboru v jednom záběru. Pokud byste chtěli načíst data z jednoho souboru 100 MB na jeden snímek, vaše aplikace by mohla jen přestat reagovat a stát se nestabilní. Nejlepším přístupem je pak použít proudy k rozdělení souboru na zvládnutelné bloky.

Takže když se operace zápisu provádí na souboru, data, která se mají zapsat, se nejprve zapíší do streamu. Z proudu se data poté zapíší do souboru. Totéž platí pro operaci čtení. V operaci čtení se data nejprve přenesou ze souboru do streamu. Data jsou poté načtena z aplikace prostřednictvím streamu. Podívejme se na příklad toho, jak můžeme číst a psát pomocí streamů.

V tomto výukovém programu se naučíte

  • Stream Reader
  • Stream Writer

Stream Reader

Čtečka streamů se používá ke čtení dat ze souboru pomocí streamů. Data ze souboru se nejprve načtou do streamu. Poté aplikace načte data ze streamu.

Pro náš příklad budeme předpokládat, že máme na jednotce D soubor s názvem Example.txt. Soubor bude jednoduchý textový soubor a bude mít 2 řádky, jak je znázorněno níže

  • Guru99 - .Net
  • Guru99 -C #

V našem příkladu vytvoříme jednoduchou aplikaci Console a budeme pracovat se streamy souborů

Podívejme se na příklad toho, jak můžeme použít streamy ke čtení dat ze souboru. Zadejte níže uvedený kód do souboru program.cs.

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

Vysvětlení kódu: -

  1. Nejprve deklarujeme objekt čtečky streamů. Objekt čtečky datových proudů se v C # používá k definování datového proudu ze souboru do aplikace. Data budou ze souboru přenesena do streamu, kdykoli se ze souboru načtou data. File.OpenText se používá k otevření souboru „Example.txt“ v režimu jen pro čtení. Obslužná rutina do souboru se poté odešle do objektu čtečky datových proudů.
  2. Dále definujeme dočasnou proměnnou 's', která bude použita ke čtení všech dat ze souboru.
  3. Potom použijeme metodu čtečky datových proudů ReadLine ke čtení každého řádku z vyrovnávací paměti datového proudu. Když provedeme tuto operaci, každý řádek bude nejprve přenesen ze souboru do vyrovnávací paměti. Poté bude řetězec převeden z vyrovnávací paměti do proměnné 's'. Poté zapíšeme obsah řetězce 's' do konzoly.

Když je nastaven výše uvedený kód a projekt je spuštěn pomocí Visual Studio, získáte níže uvedený výstup.

Výstup:-

Z výstupu můžete vidět, že Stream Reader přečetl oba řádky ze souboru. Nakonec byly řádky řetězce načtené ze streamu odeslány do konzoly.

Stream Writer

Zapisovač proudu se používá k zápisu dat do souboru pomocí proudů. Data z aplikace se nejprve zapíší do streamu. Poté stream zapíše data do souboru. Podívejme se na příklad toho, jak můžeme použít streamy pro zápis dat ze souboru. Zadejte níže uvedený kód do souboru program.cs.

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

Vysvětlení kódu: -

  1. Nejprve deklarujeme objekt zapisovače proudu. Objekt zapisovače proudu se používá v C # k definování proudu. Stream se poté použije k zápisu dat z aplikace do souboru. Data budou odeslána z aplikace do streamu, kdykoli je potřeba zapsat data. Příkaz File.AppendText se používá k otevření souboru „Example.txt“ v režimu přidání. Obslužná rutina do souboru se poté odešle do objektu zapisovače proudu.
  2. K zápisu řádku „Guru99 - ASP.Net“ do proudu používáme metodu zápisu proudu Writeline. Z proudu bude řádek poté zapsán do souboru.
  3. Poté zapíšeme zapisovač proudu po zápisu do souboru. Obvykle je dobrým zvykem zavírat obslužné rutiny souborů, když soubor již není pro účely psaní vyžadován.
  4. Nakonec znovu načítáme obsah souboru a zapisujeme ho do protokolu konzoly. To slouží ke kontrole, zda byl řádek zapsán do souboru.

Když je nastaven výše uvedený kód a projekt je spuštěn pomocí Visual Studio, získáte níže uvedený výstup.

Výstup:-

Z výstupu vidíte, že do souboru byl úspěšně přidán řádek „Guru99 - ASP.Net“. V konzole jsou vidět všechny 3 řádky textu.

souhrn

  • Proudy se používají jako střední úroveň mezi aplikací a souborem.
  • StreamReader se používá vždy, když je nutné číst data ze souboru.
  • Streamwriter se používá vždy, když je třeba zapsat data do souboru.