C # Stream Tutorial: StreamReader, StreamWriter cu exemplu

Cuprins:

Anonim

În operațiile de fișiere C #, fluxurile sunt utilizate în mod normal pentru a citi și a scrie în fișiere. Un flux este un strat suplimentar creat între o aplicație și un fișier. Fluxul este utilizat pentru a asigura operații de citire și scriere fără probleme în fișier.

Fluxurile sunt utilizate în mod normal la citirea datelor din fișiere mari. Prin utilizarea fluxurilor, datele din fișiere mari sunt descompuse în bucăți mici și trimise fluxului. Aceste bucăți de date pot fi apoi citite din aplicație.

Motivul descompunerii în bucăți mici se datorează impactului de performanță al citirii unui fișier mare într-o singură fotografie. Dacă ar fi să citiți datele din, de exemplu, un fișier de 100 MB într-o singură fotografie, aplicația dvs. ar putea să se blocheze și să devină instabilă. Cea mai bună abordare este apoi utilizarea fluxurilor pentru a împărți fișierul în bucăți gestionabile.

Deci, atunci când o operațiune de scriere este efectuată pe fișier, datele care urmează să fie scrise sunt mai întâi scrise în flux. Din flux, datele sunt apoi scrise în fișier. Același lucru este valabil și pentru operația de citire. În operația de citire, datele sunt mai întâi transferate din fișier în flux. Datele sunt apoi citite din aplicație prin intermediul fluxului. Să vedem un exemplu al modului în care putem citi și scrie folosind fluxuri.

În acest tutorial, veți învăța-

  • Reader de flux
  • Stream Writer

Reader de flux

Cititorul de flux este utilizat pentru a citi date dintr-un fișier folosind fluxuri. Datele din fișier sunt citite mai întâi în flux. Ulterior, aplicația citește datele din flux.

Pentru exemplul nostru, vom presupune că avem un fișier în unitatea D numit Example.txt. Fișierul va fi un fișier text simplu și va avea 2 linii, așa cum se arată mai jos

  • Guru99 - .Net
  • Guru99 -C #

Pentru exemplul nostru, vom crea o aplicație simplă pentru Consolă și vom lucra cu fluxuri de fișiere

Să vedem un exemplu despre modul în care putem folosi fluxurile pentru citirea datelor dintr-un fișier. Introduceți codul de mai jos în fișierul 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();}}}

Cod Explicație: -

  1. În primul rând, declarăm un obiect cititor de flux. Obiectul de citire a fluxului este utilizat în C # pentru a defini un flux de la fișier la aplicație. Datele vor fi împinse din fișier în flux ori de câte ori datele sunt citite din fișier. File.OpenText este utilizat pentru a deschide fișierul „Example.txt” în modul de citire numai. Handlerul către fișier este apoi trimis la obiectul de citire a fluxului.
  2. În continuare, definim o variabilă temporară „s” care va fi utilizată pentru a citi toate datele din fișier.
  3. Apoi folosim metoda ReadLine pentru citirea fluxului pentru a citi fiecare linie din buffer-ul fluxului. Când efectuăm această operațiune, fiecare linie va fi mai întâi transferată din fișier în buffer. Apoi linia șirului va fi transferată din buffer în variabila „s”. Apoi scriem conținutul șirului „s” în consolă.

Când codul de mai sus este setat și proiectul este rulat utilizând Visual Studio, veți obține rezultatul de mai jos.

Ieșire: -

Din ieșire, puteți vedea că Stream Reader citește ambele linii din fișier. În cele din urmă, liniile șirului citite din flux au fost trimise Consolei.

Stream Writer

Scriitorul de fluxuri este folosit pentru a scrie date într-un fișier folosind fluxuri. Datele din aplicație sunt scrise mai întâi în flux. După aceea, fluxul scrie datele în fișier. Să vedem un exemplu despre modul în care putem folosi fluxurile pentru scrierea datelor dintr-un fișier. Introduceți codul de mai jos în fișierul 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();}}}

Cod Explicație: -

  1. În primul rând, declarăm un obiect scriitor de flux. Obiectul de scriere a fluxului este utilizat în C # pentru a defini un flux. Fluxul este apoi utilizat pentru a scrie date din aplicație în fișier. Datele vor fi împinse de la aplicație la flux ori de câte ori trebuie scrise date. Comanda File.AppendText este utilizată pentru a deschide fișierul „Example.txt” într-un mod de adăugare. Handler-ul către fișier este apoi trimis către obiectul de scriere a fluxului.
  2. Folosim metoda de scriere a fluxului Writeline pentru a scrie linia „Guru99 - ASP.Net” în flux. Din flux, linia va fi apoi scrisă în fișier.
  3. Apoi închidem scriitorul de flux după ce am scris în fișier. În mod normal, este o bună practică să închideți gestionarele de fișiere atunci când fișierul nu mai este necesar în scopul scrierii.
  4. În cele din urmă, citim din nou conținutul fișierului și îl scriem în jurnalul consolei. Aceasta este pentru a verifica dacă linia a fost scrisă în fișier.

Când codul de mai sus este setat și proiectul este rulat utilizând Visual Studio, veți obține rezultatul de mai jos.

Ieșire: -

Din ieșire, puteți vedea că linia „Guru99 - ASP.Net” a fost adăugată cu succes la fișier. Toate cele 3 linii de text pot fi văzute în consolă.

rezumat

  • Fluxurile sunt utilizate ca un nivel intermediar între aplicație și fișier.
  • Un StreamReader este utilizat ori de câte ori este necesar ca datele să fie citite dintr-un fișier.
  • Un Streamwriter este utilizat ori de câte ori datele trebuie scrise într-un fișier.