Voogesituse C#-s õpetus: StreamReader ja StreamWriter [näide]
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.
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(); } } }
Koodi 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.
Stream 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(); } } }
Koodi 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, et kirjutada voogu rida “Guru99 – ASP.Net”. Voost kirjutatakse seejärel rida 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 on näha, et failile lisati edukalt rida “Guru99 – ASP.Net”. Kõik 3 tekstirida on konsoolis näha.
kokkuvõte
- Vooge kasutatakse vahetasemena rakenduse ja faili vahel.
- StreamReaderit kasutatakse alati, kui failist on vaja andmeid lugeda.
- Streamwriterit kasutatakse alati, kui andmeid on vaja faili kirjutada.