Bij bewerkingen in C # -bestanden worden normaal gesproken streams gebruikt om bestanden te lezen en ernaar te schrijven. Een stream is een extra laag die wordt gemaakt tussen een applicatie en een bestand. De stream wordt gebruikt om soepele lees- en schrijfbewerkingen naar het bestand te garanderen.
Streams worden normaal gesproken gebruikt bij het lezen van gegevens uit grote bestanden. Door streams te gebruiken, worden de gegevens van grote bestanden opgesplitst in kleine stukjes en naar de stream gestuurd. Deze brokken gegevens kunnen vervolgens uit de applicatie worden gelezen.
De reden om het in kleine stukjes op te splitsen, is vanwege de prestatie-impact van het lezen van een groot bestand in één keer. Als u de gegevens van bijvoorbeeld een bestand van 100 MB in één keer zou lezen, kan uw toepassing gewoon vastlopen en onstabiel worden. De beste aanpak is dan om streams te gebruiken om het bestand op te splitsen in beheersbare brokken.
Dus wanneer een schrijfbewerking op een bestand wordt uitgevoerd, worden de te schrijven gegevens eerst naar de stream geschreven. Vanuit de stream worden de gegevens vervolgens naar het bestand geschreven. Hetzelfde geldt voor de leesbewerking. Bij de leesbewerking worden de gegevens eerst overgedragen van het bestand naar de stream. De gegevens worden vervolgens via de stream uit de applicatie gelezen. Laten we eens kijken naar een voorbeeld van hoe we kunnen lezen en schrijven met streams.
In deze tutorial leer je-
- Stream Reader
- Streamschrijver
Stream Reader
De streamreader wordt gebruikt om gegevens uit een bestand te lezen met behulp van streams. De gegevens uit het bestand worden eerst in de stream ingelezen. Daarna leest de applicatie de gegevens uit de stream.
Voor ons voorbeeld gaan we ervan uit dat we een bestand in de D-schijf hebben met de naam Voorbeeld.txt. Het bestand is een eenvoudig tekstbestand en heeft 2 regels, zoals hieronder weergegeven
- Guru99 - .Net
- Guru99 -C #
Voor ons voorbeeld zullen we een eenvoudige consoletoepassing maken en werken met bestandsstromen
Laten we eens kijken naar een voorbeeld van hoe we streams kunnen gebruiken om gegevens uit een bestand te lezen. Voer de onderstaande code in het bestand program.cs in.
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 Verklaring: -
- Ten eerste declareren we een streamlezerobject. Het streamreaderobject wordt in C # gebruikt om een stream van het bestand naar de applicatie te definiëren. De gegevens worden van het bestand naar de stream gepusht wanneer er gegevens uit het bestand worden gelezen. De File.OpenText wordt gebruikt om het bestand "Example.txt" in alleen-lezen modus te openen. De handler voor het bestand wordt vervolgens naar het streamreaderobject gestuurd.
- Vervolgens definiëren we een tijdelijke variabele 's' die zal worden gebruikt om alle gegevens uit het bestand te lezen.
- Vervolgens gebruiken we de streamlezer-methode ReadLine om elke regel uit de streambuffer te lezen. Wanneer we deze bewerking uitvoeren, wordt elke regel eerst overgebracht van het bestand naar de buffer. Vervolgens wordt de stringlijn overgebracht van de buffer naar de variabele 's'. Vervolgens schrijven we de inhoud van de string 's' naar de console.
Wanneer de bovenstaande code is ingesteld en het project wordt uitgevoerd met Visual Studio, krijgt u de onderstaande uitvoer.
Uitgang: -
Aan de uitvoer kun je zien dat de Stream Reader beide regels uit het bestand leest. Ten slotte werden de regels van de tekenreeks die uit de stream werd gelezen, naar de console gestuurd.
Streamschrijver
De streamschrijver wordt gebruikt om gegevens naar een bestand te schrijven met behulp van streams. De gegevens van de applicatie worden eerst in de stream geschreven. Daarna schrijft de stream de gegevens naar het bestand. Laten we eens kijken naar een voorbeeld van hoe we streams kunnen gebruiken om gegevens uit een bestand te schrijven. Voer de onderstaande code in het bestand program.cs in.
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 Verklaring: -
- Ten eerste declareren we een streamschrijver-object. Het streamschrijverobject wordt in C # gebruikt om een stream te definiëren. De stream wordt vervolgens gebruikt om gegevens van de applicatie naar het bestand te schrijven. De gegevens worden van de applicatie naar de stream gepusht wanneer er gegevens moeten worden geschreven. De opdracht File.AppendText wordt gebruikt om het bestand "Example.txt" te openen in een toevoegmodus. De handler voor het bestand wordt vervolgens naar het streamschrijverobject gestuurd.
- We gebruiken de stream-schrijfmethode Writeline om de regel "Guru99 - ASP.Net" naar de stream te schrijven. Vanuit de stream wordt de regel dan naar het bestand geschreven.
- Vervolgens sluiten we de streamschrijver nadat we naar het bestand hebben geschreven. Het is normaal gesproken een goede gewoonte om bestandshandlers te sluiten wanneer het bestand niet langer nodig is voor schrijfdoeleinden.
- Ten slotte lezen we de inhoud van het bestand opnieuw en schrijven het naar het consolelogboek. Dit is om te controleren of de regel naar het bestand is geschreven.
Wanneer de bovenstaande code is ingesteld en het project wordt uitgevoerd met Visual Studio, krijgt u de onderstaande uitvoer.
Uitgang: -
Aan de uitvoer kun je zien dat de regel "Guru99 - ASP.Net" met succes aan het bestand is toegevoegd. Alle 3 regels tekst zijn te zien in de console.
Overzicht
- Streams worden gebruikt als een tussenniveau tussen de applicatie en het bestand.
- Een StreamReader wordt gebruikt wanneer gegevens uit een bestand moeten worden gelezen.
- Een Streamwriter wordt gebruikt wanneer gegevens naar een bestand moeten worden geschreven.