C # failų operacijose paprastai srautai naudojami failams skaityti ir rašyti. Srautas yra papildomas sluoksnis, sukurtas tarp programos ir failo. Srautas naudojamas sklandžiam skaitymo ir rašymo į failą operacijoms užtikrinti.
Srautai paprastai naudojami skaitant duomenis iš didelių failų. Naudojant srautus, didelių failų duomenys suskaidomi į mažus gabalėlius ir siunčiami į srautą. Šiuos duomenų gabalus galima nuskaityti iš programos.
Padalinimo į mažus gabalėlius priežastis yra didelio failo skaitymo vienu kadru poveikis. Jei skaitytumėte duomenis iš tarkim, 100 MB failo vienu kadru, jūsų programa gali tiesiog pakibti ir tapti nestabili. Geriausias būdas yra tada naudoti srautus, norint suskaidyti failą į valdomus gabalus.
Taigi, kai faile atliekama rašymo operacija, įrašomi duomenys pirmiausia įrašomi į srautą. Iš srauto duomenys įrašomi į failą. Tas pats pasakytina ir apie skaitymo operaciją. Atliekant skaitymo operaciją, duomenys pirmiausia perkeliami iš failo į srautą. Tada duomenys nuskaitomi iš programos per srautą. Pažvelkime į pavyzdį, kaip mes galime skaityti ir rašyti naudodami srautus.
Šioje pamokoje sužinosite
- Srauto skaitytuvas
- Srauto rašytojas
Srauto skaitytuvas
Srauto skaitytuvas naudojamas duomenims nuskaityti iš failo naudojant srautus. Duomenys iš failo pirmiausia nuskaitomi sraute. Po to programa nuskaito duomenis iš srauto.
Pavyzdžiui, mes manysime, kad D diske turime failą, pavadintą Example.txt. Failas bus paprastas tekstinis failas ir jame bus 2 eilutės, kaip parodyta žemiau
- Guru99 - .Net
- Guru99 -C #
Pavyzdžiui, sukursime paprastą „Console“ programą ir dirbsime su failų srautais
Pažvelkime į pavyzdį, kaip galime naudoti srautus duomenims iš failo nuskaityti. Įveskite žemiau esantį kodą į failą 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();}}}
Kodo paaiškinimas: -
- Pirma, mes skelbiame srauto skaitytojo objektą. Srauto skaitytojo objektas naudojamas C #, norint apibrėžti srautą iš failo į programą. Duomenys bus perkelti iš failo į srautą, kai tik duomenys bus nuskaityti iš failo. „File.OpenText“ naudojamas failui „Example.txt“ atidaryti tik skaitymo režimu. Tada failo tvarkytuvas siunčiamas į srauto skaitytuvo objektą.
- Toliau apibrėžiame laikiną kintamąjį „s“, kuris bus naudojamas visiems duomenims iš failo nuskaityti.
- Tada mes naudojame srauto skaitytuvo metodą „ReadLine“ kiekvienai eilutei nuskaityti iš srauto buferio. Kai atliksime šią operaciją, kiekviena eilutė pirmiausia bus perkelta iš failo į buferį. Tada eilutės eilutė bus perkelta iš buferio į kintamąjį „s“. Tada įrašome eilutės 's' turinį į konsolę.
Kai nustatytas pirmiau nurodytas kodas ir projektas vykdomas naudojant „Visual Studio“, gausite žemiau pateiktą išvestį.
Išvestis: -
Iš išvesties galite pamatyti, kad „Stream Reader“ skaitė abi failo eilutes. Galiausiai iš srauto perskaitytos eilutės eilutės buvo išsiųstos į pultą.
Srauto rašytojas
Srauto rašytojas naudojamas duomenims įrašyti į failą naudojant srautus. Duomenys iš programos pirmiausia įrašomi į srautą. Po to srautas įrašo duomenis į failą. Pažvelkime į pavyzdį, kaip mes galime naudoti srautus rašydami duomenis iš failo. Įveskite žemiau esantį kodą į failą 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();}}}
Kodo paaiškinimas: -
- Pirma, mes skelbiame srauto rašytojo objektą. Srauto rašytojo objektas naudojamas C #, norint apibrėžti srautą. Tada srautas naudojamas duomenims iš programos rašyti į failą. Duomenys bus perduodami iš programos į srautą, kai tik reikės rašyti duomenis. Komanda File.AppendText naudojama failui „Example.txt“ atidaryti pridedant režimą. Tada failo tvarkytuvas siunčiamas į srauto rašytojo objektą.
- Mes naudojame srauto rašymo metodą Writeline, kad įrašytume srautui eilutę "Guru99 - ASP.Net". Iš srauto eilutė bus įrašyta į failą.
- Tada, užrašę failą, uždarome srauto rašytoją. Paprastai yra gera praktika uždaryti failų tvarkytuvus, kai failas nebereikalingas rašymo tikslams.
- Galiausiai mes dar kartą perskaitome failo turinį ir įrašome jį į konsolės žurnalą. Tai siekiama patikrinti, ar eilutė buvo įrašyta į failą.
Kai nustatytas pirmiau nurodytas kodas ir projektas vykdomas naudojant „Visual Studio“, gausite žemiau pateiktą išvestį.
Išvestis: -
Iš išvesties galite pamatyti, kad eilutė "Guru99 - ASP.Net" buvo sėkmingai pridėta prie failo. Visas 3 teksto eilutes galima pamatyti konsolėje.
Santrauka
- Srautai naudojami kaip tarpinis programos ir failo lygis.
- „StreamReader“ naudojamas, kai duomenis reikia skaityti iš failo.
- „Streamwriter“ naudojamas, kai duomenis reikia įrašyti į failą.