c filestream streamwriter
I denne vejledning lærer du mere om System.IO, som er et C # -navneområde. Dette navneområde giver C # -klasser såsom FileStream, StreamWriter, StreamReader til håndtering af fil I / O:
bedste software til at klone hdd til ssd
En fil er grundlæggende et systemobjekt, der er gemt i hukommelsen i en bestemt given mappe med et korrekt navn og udvidelse. I C # kalder vi en fil som stream, hvis vi bruger den til at skrive eller læse data.
I denne vejledning vil vi se på både input-stream, der bruges til at hente data fra en given fil, og output-stream, der bruges til at sætte data i en fil.
=> Se efter vores ultimative C # træningsvejledning her
Hvad du lærer:
System.IO Navneområde
System.IO er et navneområde til stede i C #, der indeholder klasser, der kan bruges til at udføre forskellige operationer på en given strøm som at oprette, redigere og hente data fra en given fil.
Lad os se på nogle af disse klasser.
C # FileStream
Filstrøm tilbyder en sti til udførelse af filhandlinger. Det bruges hovedsageligt til læsning og skrivning af data i filerne.
Eksempel på at skrive i en fil:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); f.WriteByte(70); Console.WriteLine('Data written into file'); f.Close(); Console.WriteLine('File Stream closed'); } } }
Her skrev vi et simpelt program til at skrive en enkelt byte-data i filen ved hjælp af filstrøm. Først oprettede vi et FileStream-objekt og passerede navnet på filen. Derefter indstiller vi filtilstanden til at åbne eller oprette. I den åbnede fil skrev vi en enkelt byte ved hjælp af WriteByte, og til sidst lukkede vi alt.
Outputtet er en txt-fil med en enkelt byte.
Eksempel på at læse en fil
I vores tidligere eksempel lærte vi, hvordan man skriver i en fil nu, lad os prøve at læse filen.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); char a = (char)f.ReadByte(); Console.WriteLine('Data read from file is: '+a); f.Close(); Console.WriteLine('File Stream closed'); Console.ReadLine(); } } }
Her har vi brugt ReadByte til at læse byten fra filen. Denne kommando bruges til at læse en enkelt byte fra filen. Hvis du vil læse flere data, skal du sende dem gennem en løkke. Vi gemte det derefter i en char-variabel, men da returtypen ikke altid passer til ReadByte, har vi også tilføjet en rollebesætning.
Hvis vi kører dette program, observeres følgende output.
Produktion
Filen blev åbnet
Data læst fra fil er: F
File Stream lukket
C #StreamWriter
StreamWriter-klassen i C # bruges til at skrive tegn til en stream. Det bruger klassen TextWriter som en basisklasse og giver overbelastningsmetoder til at skrive data til en fil.
StreamWriter bruges hovedsageligt til at skrive flere tegn med data i en fil.
Eksempel:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); //declared stream writer StreamWriter s = new StreamWriter(f); Console.WriteLine('Writing data to file'); s.WriteLine('Writing data into file using stream writer'); //closing stream writer s.Close(); f.Close(); Console.WriteLine('File Stream closed'); Console.ReadLine(); } } }
Efter initialisering af FileStream-objektet initialiserede vi også StreamWriter-objektet ved hjælp af FileStream-objektet. Derefter brugte vi WriteLine-metoden til at skrive en enkelt linje med data i filen. Vi lukkede derefter StreamWriter og derefter FileStream.
Outputtet af følgende kode vil være en fil med brugerdata skrevet i den.
bedste gratis registry cleaner windows 7
Produktion
C #StreamReader
StreamReader bruges til at læse streng eller store sætninger fra en fil. StreamReader bruger også klassen TextReader som sin basisklasse og tilbyder derefter metoder som Reading og ReadLine til at læse data fra streamen.
Eksempel på læsning af data:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); //declared stream reader StreamReader sr = new StreamReader(f); Console.WriteLine('Reading data from the file'); string line = sr.ReadLine(); Console.WriteLine('The data from the file is : ' + line); //closing stream writer sr.Close(); f.Close(); Console.WriteLine('File Stream closed'); Console.ReadLine(); } } }
Her har vi oprettet et objekt fra StreamReader ved hjælp af FileStream. Derefter brugte vi en simpel readline-metode til at læse data fra filen. Vi lukkede StreamReader og derefter FileStream.
Ovenstående program producerede følgende output:
Produktion:
Filen blev åbnet
Læsning af data fra filen
Dataene fra filen er: Skrivning af data i fil ved hjælp af streamwriter
File Stream lukket
hvordan man åbner shockwave flash-objekt
C #TextWriter
I C # er TextWriter-klassen skrevet som en abstrakt klasse. Det bruges til at oprette en sekventiel række af tegn inde i en fil. Det ligner meget streamforfatteren, der også giver brugeren mulighed for at skrive sekventielle tegn eller tekst i en fil, men det kræver ikke oprettelse af FileStream til handlingen.
Eksempel på, hvordan TextWriter fungerer:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { using (TextWriter writer = File.CreateText('d:\textFile.txt')) { writer.WriteLine('The first line with text writer'); } Console.ReadLine(); } } }
Ovenstående kode fungerer ligesom StreamWriter. WriteLine-metoden skriver dataene i filen. Du kan skrive flere data i filen ved hjælp af flere WriteLine-metoder inde i sætningsblokken.
Outputtet opretter en tekstfil med den brugerdefinerede tekst.
Produktion:
C #TextReader
Tekstlæser er en anden klasse, der findes i System.IO. Det bruges til at læse tekst eller ethvert sekventielt tegn fra en given fil.
Eksempel:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { using (TextReader txtR = File.OpenText('d:\textFile.txt')) { String data = txtR.ReadToEnd(); Console.WriteLine(data); } Console.ReadLine(); } } }
I ovenstående program har vi brugt TextReader til at åbne en fil, der opbevares et bestemt sted. Derefter erklærede vi en strengvariabel til lagring af filens data. ReadToEnd-metoden sikrer, at alle data i filen er blevet læst. Derefter udskrev vi dataene til konsollen.
Output fra ovenstående program vil være:
Den første linje med tekstforfatter
Konklusion
System.IO navneområdet inde i C # tilbyder forskellige klasser og metoder, der gør det muligt for programmører at udføre læse-skrive operationer på forskellige filer. System.IO indeholder flere klasser som FileStream, StreamReader, StreamWriter, TextReader, TextWriter osv.
Alle disse klasser giver en specifik implementering af læseskrivningsoperationerne på filen afhængigt af kravet.
Kodeeksempel
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); f.WriteByte(70); Console.WriteLine('Data written into file'); char a = (char)f.ReadByte(); Console.WriteLine('Data read from file is: ' + a); //declared stream writer StreamWriter s = new StreamWriter(f); Console.WriteLine('Writing data to file'); s.WriteLine('Writing data into file using stream writer'); //declared stream reader StreamReader sr = new StreamReader(f); Console.WriteLine('Reading data from the file'); string line = sr.ReadLine(); Console.WriteLine('The data from the file is : ' + line); //closing stream sr.Close(); f.Close(); Console.WriteLine('File Stream closed'); using (TextWriter writer = File.CreateText('d:\textFile.txt')) { writer.WriteLine('The first line with text writer'); } using (TextReader txtR = File.OpenText('d:\textFile.txt')) { String data = txtR.ReadToEnd(); Console.WriteLine(data); } Console.ReadLine(); } } }
=> Se den fulde C # træningsserie her
Anbefalet læsning
- Filmanipulation i Unix: Oversigt over Unix File System
- Unix specialtegn eller metategn til filmanipulation
- Tilladelser til Unix-filadgang: Unix Chmod, Chown og Chgrp
- VBScript-filobjekter: CopyFile, DeleteFile, OpenTextFile, Læs og skriv tekstfil
- Funktioner til filinputoutput i C ++
- Java-implementering: Oprettelse og udførelse af Java JAR-fil
- Sådan sammenlignes to filer i Unix: kommandoer til filsammenligning
- Avanceret Unix Shell-scripting: Arrays, fil- og strengtestoperatører, specielle variabler