C # -tiedostotoiminnoissa tavallisesti virtoja käytetään tiedostojen lukemiseen ja kirjoittamiseen. Stream on lisäkerros, joka luodaan sovelluksen ja tiedoston välille. Streamin avulla varmistetaan sujuvat luku- ja kirjoitusoperaatiot tiedostoon.
Suoratoistoja käytetään yleensä, kun luetaan tietoja suurista tiedostoista. Streamin avulla suurten tiedostojen tiedot jaotellaan pieniksi paloiksi ja lähetetään streamiin. Nämä tiedonpalat voidaan sitten lukea sovelluksesta.
Syy sen hajottamiseen pieniksi paloiksi johtuu ison tiedoston lukemisen yhdestä laukauksesta suorituskyvystä. Jos lukisit tiedot 100 MB: n tiedostosta yhdellä otoksella, sovelluksesi voisi vain jumittua ja tulla epävakaaksi. Paras tapa on sitten käyttää virtoja tiedoston jakamiseen hallittaviksi paloiksi.
Joten kun tiedostolle suoritetaan kirjoitusoperaatio, kirjoitettavat tiedot kirjoitetaan ensin streamiin. Streamista tiedot kirjoitetaan sitten tiedostoon. Sama koskee lukutoimintoa. Lukutoiminnossa data siirretään ensin tiedostosta streamiin. Tiedot luetaan sitten sovelluksesta virran kautta. Katsotaanpa esimerkkiä siitä, kuinka voimme lukea ja kirjoittaa virtojen avulla.
Tässä opetusohjelmassa opit-
- Suoratoista lukija
- Streamin kirjoittaja
Suoratoista lukija
Streamin lukijaa käytetään tietojen lukemiseen tiedostosta virtojen avulla. Tiedoston tiedot luetaan ensin streamiin. Sen jälkeen sovellus lukee tiedot virrasta.
Oletetaan esimerkiksi, että D-asemassa on tiedosto nimeltä.esim. Tiedosto on yksinkertainen tekstitiedosto ja siinä on 2 riviä alla olevan kuvan mukaisesti
- Guru99 - .Net
- Guru99 -C #
Esimerkissä luomme yksinkertaisen konsolisovelluksen ja työskentelemme tiedostovirtausten kanssa
Katsotaanpa esimerkkiä siitä, miten voimme käyttää virtoja tiedostojen tietojen lukemiseen. Kirjoita alla oleva koodi program.cs-tiedostoon.
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();}}}
Koodin selitys: -
- Ensinnäkin julistamme stream-lukijaobjektin. Streaminlukijaobjektia käytetään C #: ssä määrittelemään virta tiedostosta sovellukseen. Tiedot työnnetään tiedostosta streamiin aina, kun tiedostosta luetaan tietoja. File.OpenText-tiedostoa käytetään tiedoston "Example.txt" avaamiseen vain luku -tilassa. Tiedoston käsittelijä lähetetään sitten virranlukijaobjektiin.
- Seuraavaksi määritämme väliaikaisen muuttujan 's', jota käytetään lukemaan kaikki tiedot tiedostosta.
- Sitten käytämme virranlukijan menetelmää ReadLine jokaisen rivin lukemiseen virtapuskurista. Kun suoritamme tämän operaation, kukin rivi siirretään ensin tiedostosta puskuriin. Sitten merkkijono siirretään puskurista muuttujaan s. Sitten kirjoitamme merkkijonon 's' sisällön konsoliin.
Kun yllä oleva koodi on asetettu ja projekti suoritetaan Visual Studion avulla, saat alla olevan tuloksen.
Lähtö: -
Lähdöstä näet, että Stream Reader luki molemmat rivit tiedostosta. Lopuksi virrasta luetut merkkijonorivit lähetettiin konsolille.
Streamin kirjoittaja
Streamin kirjoitinta käytetään tietojen kirjoittamiseen tiedostoon virtojen avulla. Sovelluksen tiedot kirjoitetaan ensin streamiin. Sen jälkeen virta kirjoittaa tiedot tiedostoon. Katsotaanpa esimerkkiä siitä, miten voimme käyttää virtoja tiedostojen tietojen kirjoittamiseen. Kirjoita alla oleva koodi program.cs-tiedostoon.
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();}}}
Koodin selitys: -
- Ensinnäkin julistamme streamin kirjoittajaobjektin. Streamin kirjoittajaobjektia käytetään C #: ssä virran määrittelemiseen. Virtaa käytetään sitten tietojen kirjoittamiseen sovelluksesta tiedostoon. Tiedot siirretään sovelluksesta streamiin aina, kun tiedot on kirjoitettava. File.AppendText-komentoa käytetään tiedoston "Example.txt" avaamiseen liitetilassa. Tiedoston käsittelijä lähetetään sitten streamin kirjoittajaobjektiin.
- Kirjoitamme riville "Guru99 - ASP.Net" virtaan kirjoitusmenetelmän Writeline. Streamista sitten rivi kirjoitetaan tiedostoon.
- Sitten suljet virran kirjoittajan tiedostoon kirjoittamisen jälkeen. Normaalisti on hyvä käytäntö sulkea tiedostojen käsittelijät, kun tiedostoa ei enää tarvita kirjoittamista varten.
- Lopuksi luemme tiedoston sisällön uudelleen ja kirjoitamme sen konsolilokiin. Tämän tarkoituksena on tarkistaa, onko rivi kirjoitettu tiedostoon.
Kun yllä oleva koodi on asetettu ja projekti suoritetaan Visual Studion avulla, saat alla olevan tuloksen.
Lähtö: -
Lähdöstä näet, että rivi "Guru99 - ASP.Net" lisättiin tiedostoon onnistuneesti. Kaikki 3 tekstiriviä näkyvät konsolissa.
Yhteenveto
- Suoratoistoja käytetään välitasona sovelluksen ja tiedoston välillä.
- StreamReaderia käytetään aina, kun tiedot vaaditaan luettavaksi tiedostosta.
- Streamwriteria käytetään aina, kun tiedot on kirjoitettava tiedostoon.