C# - Bestand I/O
Een bestand is een verzameling gegevens die zijn opgeslagen op een schijf met een specifieke naam en een mappad. Wanneer een bestand wordt geopend om te lezen of te schrijven, wordt het een stream .
De stream is in feite de reeks bytes die door het communicatiepad gaat. Er zijn twee hoofdstromen:de invoerstroom en de uitvoerstroom . De invoerstroom wordt gebruikt voor het lezen van gegevens uit bestand (leesbewerking) en de uitvoerstroom wordt gebruikt om naar het bestand te schrijven (schrijfbewerking).
C# I/O-klassen
De System.IO-naamruimte heeft verschillende klassen die worden gebruikt voor het uitvoeren van talloze bewerkingen met bestanden, zoals het maken en verwijderen van bestanden, lezen van of schrijven naar een bestand, sluiten van een bestand enz.
De volgende tabel toont enkele veelgebruikte niet-abstracte klassen in de System.IO-naamruimte −
Sr.nr. | I/O-klasse en beschrijving |
---|---|
1 | BinaryReader Leest primitieve gegevens uit een binaire stroom. |
2 | BinaryWriter Schrijft primitieve gegevens in binair formaat. |
3 | BufferedStream Een tijdelijke opslag voor een stroom van bytes. |
4 | Directory Helpt bij het manipuleren van een directorystructuur. |
5 | DirectoryInfo Gebruikt voor het uitvoeren van bewerkingen op mappen. |
6 | DriveInfo Biedt informatie voor de schijven. |
7 | Bestand Helpt bij het manipuleren van bestanden. |
8 | Bestandsinfo Gebruikt voor het uitvoeren van bewerkingen op bestanden. |
9 | FileStream Wordt gebruikt om te lezen van en te schrijven naar elke locatie in een bestand. |
10 | MemoryStream Gebruikt voor willekeurige toegang tot gestreamde gegevens die in het geheugen zijn opgeslagen. |
11 | Pad Voert bewerkingen uit op padinformatie. |
12 | StreamReader Gebruikt voor het lezen van tekens uit een bytestroom. |
13 | StreamWriter Wordt gebruikt voor het schrijven van karakters naar een stream. |
14 | StringReader Wordt gebruikt voor het lezen van een stringbuffer. |
15 | StringWriter Wordt gebruikt om naar een stringbuffer te schrijven. |
De FileStream-klasse
De FileStream class in de System.IO-naamruimte helpt bij het lezen van, schrijven naar en sluiten van bestanden. Deze klasse is afgeleid van de abstracte klasse Stream.
U moet een FileStream . maken object om een nieuw bestand aan te maken of een bestaand bestand te openen. De syntaxis voor het maken van een FileStream object is als volgt −
FileStream <object_name> = new FileStream( <file_name>, <FileMode Enumerator>, <FileAccess Enumerator>, <FileShare Enumerator>);
We maken bijvoorbeeld een FileStream-object F voor het lezen van een bestand met de naam sample.txt zoals weergegeven
FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
Sr.nr. | Parameter en beschrijving |
---|---|
1 | Bestandsmodus De Bestandsmodus enumerator definieert verschillende methoden voor het openen van bestanden. De leden van de FileMode-enumerator zijn −
|
2 | Bestandstoegang Bestandstoegang tellers hebben leden:Lees , ReadWrite en Schrijf . |
3 | FileShare FileShare tellers hebben de volgende leden −
|
Voorbeeld
Het volgende programma demonstreert het gebruik van de FileStream klasse −
Live demousing System; using System.IO; namespace FileIOApplication { class Program { static void Main(string[] args) { FileStream F = new FileStream("test.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite); for (int i = 1; i <= 20; i++) { F.WriteByte((byte)i); } F.Position = 0; for (int i = 0; i <= 20; i++) { Console.Write(F.ReadByte() + " "); } F.Close(); Console.ReadKey(); } } }
Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, levert dit het volgende resultaat op −
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -1
Geavanceerde bestandsbewerkingen in C#
Het voorgaande voorbeeld biedt eenvoudige bestandsbewerkingen in C#. Om echter gebruik te kunnen maken van de enorme mogelijkheden van C# System.IO-klassen, moet u de veelgebruikte eigenschappen en methoden van deze klassen kennen.
Sr.nr. | Onderwerp en beschrijving |
---|---|
1 | Lezen van en schrijven naar tekstbestanden Het gaat om het lezen van en schrijven in tekstbestanden. De StreamReader en StreamWriter klas helpt om het te bereiken. |
2 | Lezen van en schrijven naar binaire bestanden Het gaat om het lezen van en schrijven naar binaire bestanden. De BinaryReader en BinaryWriter klas helpt om dit te bereiken. |
3 | Het Windows-bestandssysteem manipuleren Het geeft een C#-programmeur de mogelijkheid om door Windows-bestanden en -mappen te bladeren en deze te lokaliseren. |
C Taal