Pri operacijah datotek C # se običajno tokovi uporabljajo za branje in pisanje v datoteke. Tok je dodatna plast, ustvarjena med aplikacijo in datoteko. Tok se uporablja za zagotovitev gladkega branja in pisanja v datoteko.
Potoki se običajno uporabljajo pri branju podatkov iz velikih datotek. Z uporabo tokov se podatki iz velikih datotek razdelijo na majhne koščke in pošljejo v tok. Te koščke podatkov lahko nato preberete iz aplikacije.
Razlog za razdelitev na majhne koščke je vpliv branja velike datoteke v enem posnetku. Če bi na en posnetek brali podatke iz recimo datoteke velikosti 100 MB, bi se lahko vaša aplikacija preprosto obesila in postala nestabilna. Najboljši pristop je potem uporaba tokov za razčlenitev datoteke na obvladljive koščke.
Torej, ko se v datoteko izvede operacija pisanja, se podatki, ki jih je treba zapisati, najprej zapišejo v tok. Iz toka se podatki nato zapišejo v datoteko. Enako velja za operacijo branja. Pri operaciji branja se podatki najprej prenesejo iz datoteke v tok. Nato se podatki preberejo iz aplikacije prek toka. Oglejmo si primer, kako lahko beremo in pišemo s pomočjo tokov.
V tej vadnici boste izvedeli-
- Bralnik tokov
- Stream Writer
Bralnik tokov
Čitalnik tokov se uporablja za branje podatkov iz datoteke s pomočjo tokov. Podatki iz datoteke se najprej preberejo v toku. Nato aplikacija bere podatke iz toka.
Za naš primer bomo domnevali, da imamo v pogonu D datoteko z imenom Example.txt. Datoteka bo preprosta besedilna datoteka in bo imela dve vrstici, kot je prikazano spodaj
- Guru99 - .Net
- Guru99 -C #
Za naš primer bomo ustvarili preprosto aplikacijo Console in delali s tokovi datotek
Oglejmo si primer, kako lahko uporabljamo tokove za branje podatkov iz datoteke. V datoteko program.cs vnesite spodnjo kodo.
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();}}}
Pojasnilo kode: -
- Najprej razglasimo objekt bralnika tokov. Objekt bralnika tokov se v C # uporablja za definiranje toka iz datoteke v aplikacijo. Podatki bodo potisnjeni iz datoteke v tok vsakič, ko bodo podatki prebrani iz datoteke. File.OpenText se uporablja za odpiranje datoteke "Example.txt" v načinu samo za branje. Obdelovalec datoteke se nato pošlje objektu bralnika toka.
- Nato določimo začasno spremenljivko 's', ki bo uporabljena za branje vseh podatkov iz datoteke.
- Nato za branje vsake vrstice iz medpomnilnika toka uporabimo metodo ReadLine bralnika tokov. Ko izvedemo to operacijo, se vsaka vrstica najprej prenese iz datoteke v medpomnilnik. Nato se vrstica niza prenese iz vmesnega pomnilnika v spremenljivko 's'. Nato v konzolo zapišemo vsebino niza 's'.
Ko nastavite zgornjo kodo in projekt zaženete z Visual Studio, boste dobili spodnji izhod.
Izhod: -
Iz izhoda lahko vidite, da je Stream Reader prebral obe vrstici iz datoteke. Končno so bile vrstice niza, prebranega iz toka, poslane v konzolo.
Stream Writer
Zapisovalnik tokov se uporablja za zapisovanje podatkov v datoteko s pomočjo tokov. Podatki iz aplikacije se najprej zapišejo v tok. Potem tok zapisuje podatke v datoteko. Oglejmo si primer, kako lahko uporabljamo tokove za zapisovanje podatkov iz datoteke. V datoteko program.cs vnesite spodnjo kodo.
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();}}}
Pojasnilo kode: -
- Najprej razglasimo objekt zapisovalnika tokov. Predmet zapisovalnika tokov se v C # uporablja za definiranje toka. Tok se nato uporabi za zapisovanje podatkov iz aplikacije v datoteko. Podatki bodo potisnjeni iz aplikacije v tok, kadar koli jih je treba zapisati. Ukaz File.AppendText se uporablja za odpiranje datoteke "Example.txt" v načinu dodajanja. Obdelovalec datoteke se nato pošlje predmetu zapisovalnika toka.
- Za zapisovanje vrstice "Guru99 - ASP.Net" v tok uporabljamo metodo pisanja toka Writeline. Iz toka se vrstica nato zapiše v datoteko.
- Nato po zapisovanju v datoteko zapisovalnik tokov zapremo. Običajno je dobra praksa, da zaprete upravljalnike datotek, ko datoteka ni več potrebna za pisanje.
- Na koncu ponovno beremo vsebino datoteke in jo zapisujemo v dnevnik konzole. S tem se preveri, ali je bila vrstica zapisana v datoteko.
Ko nastavite zgornjo kodo in projekt zaženete z Visual Studio, boste dobili spodnji izhod.
Izhod: -
Iz izhoda lahko vidite, da je bila v datoteko uspešno dodana vrstica "Guru99 - ASP.Net". Vse tri vrstice besedila si lahko ogledate v konzoli.
Povzetek
- Pretoki se uporabljajo kot vmesna raven med aplikacijo in datoteko.
- StreamReader se uporablja, kadar je treba podatke brati iz datoteke.
- Streamwriter se uporablja, kadar je treba podatke zapisati v datoteko.