Striimaus C#:lla: StreamReader ja StreamWriter [Esimerkki]
⚡ Älykäs yhteenveto
AC#-stream on sovelluksesi ja tiedoston välinen kerros, jonka avulla voit lukea tai kirjoittaa dataa pienissä osissa. Tässä opit StreamReaderin ja Streamin toiminnan.Writer työ, esimerkkien ja päätyyppien kera.
Mikä on C# Stream?
C#-tiedostotoiminnoissa streameja käytetään yleensä tiedostojen lukemiseen ja kirjoittamiseen. Virta on lisäkerros, joka luodaan sovelluksen ja tiedoston väliin. Tietovirtaa käytetään varmistamaan sujuvan tiedoston luku- ja kirjoitustoiminnot.
Virtoja käytetään yleensä luettaessa tietoja suurista tiedostoista. Tietovirtoja käyttämällä suurten tiedostojen tiedot jaetaan pieniksi paloiksi ja lähetetään streamiin. Nämä tietopalat voidaan sitten lukea sovelluksesta.
Syy sen jakamiseen pieniksi paloiksi johtuu suuren tiedoston yhdellä kertaa lukemisen tehokkuudesta. Jos lukisit tiedot esimerkiksi 100 Mt:n tiedostosta yhdellä kertaa, sovelluksesi voisi vain jumittua ja muuttua epävakaaksi. Paras tapa on sitten käyttää virtoja tiedostojen jakamiseen hallittaviksi paloiksi.
Joten kun tiedostolle suoritetaan kirjoitustoiminto, kirjoitettava data kirjoitetaan ensin virtaan. Virrasta tiedot kirjoitetaan sitten tiedostoon. Sama koskee lukutoimintoa. Lukutoiminnossa tiedot siirretään ensin tiedostosta streamiin. Tiedot luetaan sitten sovelluksesta streamin kautta. Katsotaanpa esimerkkiä siitä, kuinka voimme lukea ja kirjoittaa virtojen avulla.
C#:n striimien tyypit
Kaikki C#:n stream-luokat johdetaan abs-arvostatract Stream luokka System.IO nimiavaruus. Jokainen tyyppi kohdistuu eri tietolähteeseen, mutta niillä on samat luku- ja kirjoitusmenetelmät. Yleisimmin käytetyt virrat on lueteltu alla.
- FileStream lukee ja kirjoittaa levyllä oleviin tiedostoihin, yksi tavu tai lohko kerrallaan.
- Muistivirta tallentaa tiedot muistiin tiedoston sijaan, mikä on hyödyllistä väliaikaisille puskureille.
- BufferedStream käärii toisen virran vähentääkseen hitaiden levy- tai verkkotoimintojen määrää.
- NetworkStream lähettää ja vastaanottaa dataa verkkosocketin kautta.
Tekstin käsittelyyn C# tarjoaa StreamReader ja StreamWriter apuluokkaluokat, jotka kiertävät virran ja joita käsitellään seuraavissa osioissa.
Stream Reader
Stream-lukijaa käytetään tietojen lukemiseen tiedostosta streamien avulla. Tiedoston tiedot luetaan ensin streamiin. Tämän jälkeen sovellus lukee tiedot virrasta.
Esimerkissämme oletetaan, että meillä on D-asemassa tiedosto nimeltä Esimerkki.txt. Tiedosto on yksinkertainen tekstitiedosto ja siinä on 2 riviä alla olevan kuvan mukaisesti
- Guru99 – .Net
- Guru99 -C#
Esimerkkiämme luomme yksinkertaisen konsolisovelluksen ja työskentelemme tiedostovirtojen kanssa
Katsotaanpa esimerkkiä siitä, kuinka voimme käyttää virtoja datan lukemiseen tiedostosta. 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(); } } }
Code Selitys:-
- Ensin julistamme stream-lukijaobjektin. Virranlukijaobjektia käytetään C#:ssa määrittämään stream tiedostosta sovellukseen. Tiedot työnnetään tiedostosta streamiin aina, kun dataa luetaan tiedostosta. Tiedosto.OpenText käytetään avaamaan tiedosto "Example.txt" vain luku -tilassa. Tiedoston käsittelijä lähetetään sitten stream-lukijaobjektiin.
- Seuraavaksi määrittelemme väliaikaisen muuttujan 's', jota käytetään kaikkien tiedostojen tietojen lukemiseen.
- Tämän jälkeen käytämme stream-lukijamenetelmää ReadLine jokaisen rivin lukemiseen stream-puskurista. Kun suoritamme tämän toiminta, jokainen rivi siirretään ensin tiedostosta puskuriin. Sitten merkkijono rivi siirretään puskurista muuttujaan 's'. Kirjoitamme sitten merkkijonon "s" sisällön konsoliin.
Kun yllä oleva koodi on asetettu ja projektia ajetaan käyttäen Visual Studio, saat alla olevan tulosteen.
Lähtö: -
Tulosteesta näet, että Stream Reader luki molemmat rivit tiedostosta. Lopuksi virrasta luetun merkkijonon rivit lähetettiin konsoliin.
Virta Writer
Virtakirjoitinta käytetään tietojen kirjoittamiseen tiedostoon streamien avulla. Sovelluksen tiedot kirjoitetaan ensin streamiin. Tämän jälkeen stream kirjoittaa tiedot tiedostoon. Katsotaanpa esimerkkiä siitä, kuinka voimme käyttää virtoja datan kirjoittamiseen tiedostosta. 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(); } } }
Code Selitys:-
- Ensin julistamme stream writer -objektin. Stream writer -objektia käytetään C#:ssa virran määrittämiseen. Tietovirtaa käytetään sitten tietojen kirjoittamiseen sovelluksesta tiedostoon. Tiedot työnnetään sovelluksesta streamiin aina, kun tietoja on kirjoitettava. File.AppendText-komentoa käytetään tiedoston “Example.txt” avaamiseen lisäystilassa. Tiedoston käsittelijä lähetetään sitten stream writer -objektiin.
- Käytämme Writeline-jonokirjoitusmetodia rivin kirjoittamiseen “Guru99 – ASP.Net” striimiin. Rivi kirjoitetaan sitten striimistä tiedostoon.
- Suljemme sitten stream-kirjoittimen tiedostoon kirjoittamisen jälkeen. Yleensä on hyvä käytäntö sulkea tiedostokäsittelijät, kun tiedostoa ei enää tarvita kirjoitustarkoituksiin.
- Lopuksi luemme tiedoston sisällön uudelleen ja kirjoitamme sen konsolin lokiin. Tällä tarkistetaan, onko rivi kirjoitettu tiedostoon.
Kun yllä oleva koodi on asetettu ja projektia ajetaan Visual Studiolla, saat alla olevan tulosteen.
Lähtö: -
Tulosteesta näet, että rivi "Guru99 – ASP.Net” lisättiin tiedostoon onnistuneesti. Kaikki kolme tekstiriviä näkyvät konsolissa.





