Striimimine C#-s: StreamReader ja StreamWriter [Näide]
⚡ Nutikas kokkuvõte
AC# voog on teie rakenduse ja faili vaheline kiht, mis võimaldab teil andmeid väikeste tükkidena lugeda või kirjutada. Siit saate teada, kuidas StreamReader ja Stream...Writer töö koos näidete ja peamiste voogude tüüpidega.
Mis on C# Stream?
C#-failitoimingutes kasutatakse failide lugemiseks ja kirjutamiseks tavaliselt vooge. Voog on rakenduse ja faili vahele loodud lisakiht. Voogu kasutatakse faili sujuva lugemise ja kirjutamise tagamiseks.
Vooge kasutatakse tavaliselt suurte failide andmete lugemisel. Vooge kasutades jagatakse suurtest failidest andmed väikesteks tükkideks ja saadetakse voogu. Neid andmetükke saab seejärel rakendusest lugeda.
Selle väikesteks tükkideks jagamise põhjuseks on suure faili ühekordse lugemise mõju jõudlusele. Kui loeksite andmeid näiteks 100 MB failist korraga, võib teie rakendus lihtsalt hanguda ja muutuda ebastabiilseks. Parim viis on siis faili hallatavateks tükkideks jaotamiseks kasutada vooge.
Nii et kui failis tehakse kirjutamisoperatsioon, kirjutatakse kirjutatavad andmed esmalt voogu. Seejärel kirjutatakse andmed voost faili. Sama kehtib ka lugemistoimingu kohta. Lugemistoimingus kantakse andmed esmalt failist voogu. Seejärel loetakse andmeid rakendusest voo kaudu. Vaatame näidet selle kohta, kuidas saame lugeda ja kirjutada vooge kasutades.
C# voogude tüübid
Kõik C# voogude klassid tulenevad abs-sttract Stream klassis System.IO nimeruum. Iga tüüp on suunatud erinevale andmeallikale, kuid jagab samu lugemis- ja kirjutamismeetodeid. Kõige sagedamini kasutatavad vood on loetletud allpool.
- Filestream loeb ja kirjutab kettalt faile, üks bait või plokk korraga.
- Mäluvoog salvestab andmeid faili asemel mällu, mis on kasulik ajutiste puhvrite jaoks.
- BufferedStream mähib teise voo, et vähendada aeglaste ketta- või võrgutoimingute arvu.
- NetworkStream saadab ja võtab vastu andmeid võrgupistikupesa kaudu.
Tekstiga töötamiseks pakub C# StreamReader ja StreamWriter abiklassid, mis mähivad voogu ja mida käsitletakse järgmistes osades.
Voolugeja
Voolugejat kasutatakse andmete lugemiseks failist voogude abil. Andmed failist loetakse esmalt voogu. Seejärel loeb rakendus voost andmeid.
Meie näite puhul eeldame, et meil on D-draivis fail nimega Example.txt. Fail on lihtne tekstifail ja sellel on 2 rida, nagu allpool näidatud
- Guru99 – .Net
- Guru99 -C#
Meie näites loome lihtsa konsoolirakenduse ja töötame failivoogudega
Vaatame näidet selle kohta, kuidas saame failist andmete lugemiseks kasutada vooge. Sisestage allolev kood faili 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(); } } }
Code Selgitus:-
- Esiteks deklareerime voolugeja objekti. Voolugeja objekti kasutatakse C#-s voo määratlemiseks failist rakendusse. Andmed lükatakse failist voogu, kui failist andmeid loetakse. Fail.OpenText kasutatakse faili “Example.txt” avamiseks kirjutuskaitstud režiimis. Seejärel saadetakse faili töötleja voolugeja objektile.
- Järgmisena määratleme ajutise muutuja 's', mida kasutatakse failist kõigi andmete lugemiseks.
- Seejärel kasutame iga rea lugemiseks voopuhvrist voolugeja meetodit ReadLine. Kui me seda teostame töö, kantakse iga rida esmalt failist puhvrisse. Seejärel kantakse stringi rida puhvrist muutujasse 's'. Seejärel kirjutame stringi "s" sisu konsooli.
Kui ülaltoodud kood on määratud ja projekti käitatakse kasutades Visual Studio, saate alloleva väljundi.
Väljund:-
Väljundist näete, et Stream Reader luges failist mõlemad read. Lõpuks saadeti voost loetud stringi read konsooli.
Oja Writer
Vookirjutajat kasutatakse andmete kirjutamiseks faili voogude abil. Rakenduse andmed kirjutatakse esmalt voogu. Pärast seda kirjutab voog andmed faili. Vaatame näidet selle kohta, kuidas saame failist andmete kirjutamiseks kasutada vooge. Sisestage allolev kood faili 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(); } } }
Code Selgitus:-
- Esiteks deklareerime vookirjutaja objekti. Voo kirjutaja objekti kasutatakse C#-s voo määratlemiseks. Seejärel kasutatakse voogu andmete kirjutamiseks rakendusest faili. Andmed lükatakse rakendusest voogu, kui andmeid on vaja kirjutada. Käsku File.AppendText kasutatakse faili “Example.txt” avamiseks lisamisrežiimis. Seejärel saadetakse faili töötleja vookirjutaja objektile.
- Me kasutame voo kirjutamise meetodit Writeline rea „“ kirjutamiseks.Guru99 – ASP.Net” voogu. Seejärel kirjutatakse rida voost faili.
- Seejärel sulgeme vookirjutaja pärast faili kirjutamist. Tavaliselt on hea tava sulgeda failitöötlejad, kui faili pole kirjutamiseks enam vaja.
- Lõpuks loeme faili sisu uuesti läbi ja kirjutame selle konsooli logisse. Selle eesmärk on kontrollida, kas rida on faili kirjutatud.
Kui ülaltoodud kood on määratud ja projekti käitatakse Visual Studio abil, saate alloleva väljundi.
Väljund:-
Väljundist näete, et rida „Guru„99 – ASP.Net” lisati faili edukalt. Kõiki kolme tekstirida on konsoolis näha.





