U operacijama datoteka C #, obično se streamovi koriste za čitanje i pisanje u datoteke. Tok je dodatni sloj stvoren između aplikacije i datoteke. Tok se koristi za osiguravanje glatkih operacija čitanja i pisanja u datoteku.
Potoci se obično koriste prilikom čitanja podataka iz velikih datoteka. Korištenjem streamova podaci iz velikih datoteka razlažu se na male dijelove i šalju u stream. Ti se dijelovi podataka tada mogu pročitati iz aplikacije.
Razlog za njegovo razbijanje na male komade je utjecaj čitanja velike datoteke u jednom kadru na performanse. Ako biste čitali podatke iz recimo datoteke od 100 MB jednim potezom, vaša bi se aplikacija mogla jednostavno objesiti i postati nestabilna. Tada je najbolji pristup koristiti streamove za razbijanje datoteke na upravljačke dijelove.
Dakle, kada se operacija pisanja izvodi u datoteku, podaci koji se zapisuju prvo se zapisuju u tok. Iz streama se podaci zatim zapisuju u datoteku. Isto vrijedi i za operaciju čitanja. U operaciji čitanja, podaci se prvo prenose iz datoteke u tok. Podaci se zatim čitaju iz aplikacije putem streama. Pogledajmo primjer kako možemo čitati i pisati pomoću streamova.
U ovom vodiču naučit ćete-
- Čitač streama
- Stream Writer
Čitač streama
Čitač streama koristi se za čitanje podataka iz datoteke pomoću streamova. Podaci iz datoteke prvo se čitaju u streamu. Nakon toga aplikacija čita podatke iz toka.
Za naš ćemo primjer pretpostaviti da na D pogonu imamo datoteku koja se zove Example.txt. Datoteka će biti jednostavna tekstualna datoteka i imaće 2 retka kao što je prikazano u nastavku
- Guru99 - .Net
- Guru99 -C #
Za naš primjer stvorit ćemo jednostavnu aplikaciju Konzole i raditi s protokovima datoteka
Pogledajmo primjer kako možemo koristiti streamove za čitanje podataka iz datoteke. Unesite donji kod u datoteku 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();}}}
Objašnjenje koda: -
- Prvo, deklariramo objekt čitača struje. Objekt čitača toka koristi se u C # za definiranje toka iz datoteke u aplikaciju. Podaci će se gurnuti iz datoteke u tok kad god se podaci pročitaju iz datoteke. File.OpenText koristi se za otvaranje datoteke "Example.txt" u načinu samo za čitanje. Obrađivač datoteke zatim se šalje objektu čitača toka.
- Dalje, definiramo privremenu varijablu 's' koja će se koristiti za čitanje svih podataka iz datoteke.
- Zatim koristimo metodu čitača streama ReadLine za čitanje svakog retka iz me uspremnika. Kada izvršimo ovu operaciju, svaki će se redak prvo prenijeti iz datoteke u međuspremnik. Tada će se niz niza prenijeti iz međuspremnika u varijablu 's'. Zatim na konzolu zapisujemo sadržaj niza 's'.
Kada se postavi gornji kôd i projekt pokrene pomoću Visual Studija, dobit ćete donji izlaz.
Izlaz:-
Iz rezultata možete vidjeti da je Stream Reader pročitao oba retka iz datoteke. Konačno, redovi niza pročitani iz streama poslani su na Konzolu.
Stream Writer
Snimač tokova koristi se za upisivanje podataka u datoteku pomoću streamova. Podaci iz aplikacije prvo se zapisuju u stream. Nakon toga stream zapisuje podatke u datoteku. Pogledajmo primjer kako možemo koristiti streamove za pisanje podataka iz datoteke. Unesite donji kod u datoteku 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();}}}
Objašnjenje koda: -
- Prvo, deklariramo objekt za pisanje streama. Objekt pisca streama koristi se u C # za definiranje toka. Potok se zatim koristi za upisivanje podataka iz aplikacije u datoteku. Podaci će se preusmjeriti iz aplikacije u tok kad god ih treba zapisati. Naredba File.AppendText koristi se za otvaranje datoteke "Example.txt" u načinu dodavanja. Obrađivač datoteke zatim se šalje objektu za pisanje toka.
- Koristimo metodu pisanja toka Writeline za pisanje retka "Guru99 - ASP.Net" u tok. Iz streama će se redak tada zapisati u datoteku.
- Zatim zatvorimo program za pisanje streama nakon pisanja u datoteku. Obično je dobra praksa zatvoriti rukovatelje datotekama kada datoteka više nije potrebna za pisanje.
- Napokon, ponovno čitamo sadržaj datoteke i zapisujemo je u dnevnik konzole. Ovim se želi provjeriti je li redak zapisan u datoteku.
Kada se postavi gornji kôd i projekt pokrene pomoću Visual Studija, dobit ćete donji izlaz.
Izlaz:-
Iz rezultata možete vidjeti da je u datoteku uspješno dodan redak "Guru99 - ASP.Net". U konzoli se mogu vidjeti sva 3 retka teksta.
Sažetak
- Potoci se koriste kao srednja razina između aplikacije i datoteke.
- StreamReader se koristi kad god se podaci trebaju čitati iz datoteke.
- Streamwriter se koristi kad god podatke treba zapisati u datoteku.