c filestream streamwriter
In questo tutorial imparerai a conoscere System.IO, che è uno spazio dei nomi C #. Questo spazio dei nomi fornisce classi C # come FileStream, StreamWriter, StreamReader per gestire l'I / O dei file:
editor atom vs codice visual studio
Un file è fondamentalmente un oggetto di sistema archiviato nella memoria in una determinata directory con un nome e un'estensione appropriati. In C #, chiamiamo un file come flusso se lo usiamo per scrivere o leggere dati.
In questo tutorial, esamineremo sia il flusso di input utilizzato per recuperare i dati da un determinato file, sia il flusso di output utilizzato per inserire i dati in un file.
=> Controlla qui la nostra guida di formazione C # definitiva
Cosa imparerai:
Spazio dei nomi System.IO
System.IO è uno spazio dei nomi presente nel C # che contiene classi che possono essere utilizzate per eseguire diverse operazioni su un determinato flusso come la creazione, la modifica e il recupero di dati da un determinato file.
Diamo uno sguardo ad alcune di queste classi.
FileStream C #
Flusso di file offre un percorso per eseguire operazioni sui file. Viene utilizzato principalmente per leggere e scrivere dati nei file.
Esempio per scrivere in un file:
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'); } } }Qui, abbiamo scritto un semplice programma per scrivere un singolo byte di dati nel file utilizzando il flusso di file. All'inizio, abbiamo creato un oggetto FileStream e passato il nome del file. Quindi impostiamo la modalità file per aprire o creare. Nel file aperto abbiamo scritto un singolo byte usando WriteByte e alla fine abbiamo chiuso tutto.
L'output è un file txt con un singolo byte.

Esempio per leggere un file
Nel nostro esempio precedente abbiamo imparato a scrivere in un file ora, proviamo a leggere il file.
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(); } } }Qui abbiamo usato ReadByte per leggere il byte dal file. Questo comando viene utilizzato per leggere un singolo byte dal file. Se vuoi leggere più dati dovrai farli passare attraverso un ciclo. L'abbiamo quindi memorizzato in una variabile char ma poiché il tipo restituito non corrisponderà sempre per ReadByte, abbiamo anche aggiunto un cast per char.
Se eseguiamo questo programma, viene osservato il seguente output.
Produzione
File aperto
I dati letti dal file sono: F
File Stream chiuso
C #StreamWriter
La classe StreamWriter in C # viene usata per scrivere caratteri in un flusso. Usa la classe TextWriter come classe base e fornisce i metodi di sovraccarico per scrivere dati in un file.
StreamWriter viene utilizzato principalmente per scrivere più caratteri di dati in un file.
Esempio:
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(); } } }Dopo aver inizializzato l'oggetto FileStream, abbiamo anche inizializzato l'oggetto StreamWriter utilizzando l'oggetto FileStream. Quindi abbiamo utilizzato il metodo WriteLine per scrivere una singola riga di dati nel file. Abbiamo quindi chiuso StreamWriter e quindi FileStream.
L'output del codice seguente sarà un file con i dati dell'utente scritti in esso.
come visualizzare i file .json
Produzione

C #StreamReader
StreamReader viene utilizzato per leggere stringhe o frasi di grandi dimensioni da un file. StreamReader utilizza anche la classe TextReader come classe di base e quindi offre metodi come Reading e ReadLine per leggere i dati dal flusso.
Esempio di lettura dei dati:
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(); } } }Qui abbiamo creato un oggetto dallo StreamReader utilizzando FileStream. Quindi abbiamo utilizzato un semplice metodo readline per leggere i dati dal file. Abbiamo chiuso lo StreamReader e quindi il FileStream.
Il programma sopra ha prodotto il seguente output:
Produzione:
File aperto
Lettura dei dati dal file
I dati dal file sono: Scrittura dei dati nel file utilizzando stream writer
File Stream chiuso
come aprire i file .jar
C #TextWriter
In C # la classe TextWriter è scritta come una classe astratta. Viene utilizzato per creare una serie sequenziale di caratteri all'interno di un file. È abbastanza simile allo stream writer che consente inoltre all'utente di scrivere caratteri o testo sequenziali in un file ma non richiede la creazione di FileStream per l'operazione.
Esempio per sapere come funziona TextWriter:
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(); } } }Il codice precedente funziona in modo simile a StreamWriter. Il metodo WriteLine scrive i dati all'interno del file. È possibile scrivere più dati nel file utilizzando più metodi WriteLine all'interno del blocco di istruzioni using.
L'output creerà un file di testo con il testo definito dall'utente.
Produzione:

C #TextReader
Il lettore di testo è un'altra classe che si trova in System.IO. Viene utilizzato per leggere il testo o qualsiasi carattere sequenziale da un determinato file.
Esempio:
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(); } } }Nel programma sopra, abbiamo utilizzato TextReader per aprire un file che è conservato in una posizione particolare. Quindi abbiamo dichiarato una variabile stringa per memorizzare i dati del file. Il metodo ReadToEnd garantisce che tutti i dati all'interno del file siano stati letti. Successivamente, abbiamo stampato i dati sulla console.
L'output del programma di cui sopra sarà:
La prima riga con scrittore di testo
Conclusione
Lo spazio dei nomi System.IO all'interno di C # offre varie classi e metodi per consentire ai programmatori di eseguire operazioni di lettura e scrittura su file diversi. System.IO contiene diverse classi come FileStream, StreamReader, StreamWriter, TextReader, TextWriter ecc.
Tutte queste classi forniscono un'implementazione specifica per le operazioni di lettura e scrittura sul file a seconda del requisito.
Esempio di codice
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(); } } }=> Guarda la serie completa di formazione C # qui
Lettura consigliata
- Manipolazione dei file in Unix: panoramica del file system Unix
- Caratteri speciali Unix o metacaratteri per la manipolazione dei file
- Autorizzazioni di accesso ai file Unix: Unix Chmod, Chown e Chgrp
- Oggetti file VBScript: CopyFile, DeleteFile, OpenTextFile, Read and Write Text File
- File Input Output Operazioni in C ++
- Distribuzione Java: creazione ed esecuzione di file JAR Java
- Come confrontare due file in Unix: comandi di confronto dei file
- Scripting shell Unix avanzato: array, operatori di test di file e stringhe, variabili speciali