logo

Come leggere e scrivere un file di testo in C#?

La chiusura di un programma comporta la cancellazione di tutti i dati ad esso correlati. Pertanto, dobbiamo archiviare i dati da qualche parte. I file vengono utilizzati per archiviare e condividere in modo permanente i dati. C# può essere utilizzato per recuperare e manipolare i dati archiviati in file di testo.

Lettura di un file di testo: La classe file in C# definisce due metodi statici per leggere un file di testo, vale a dire File.ReadAllText() E File.ReadAllLines() .



  • File.ReadAllText() legge l'intero file in una sola volta e restituisce una stringa. Dobbiamo memorizzare questa stringa in una variabile e usarla per visualizzare il contenuto sullo schermo.
  • File.ReadAllLines() legge un file una riga alla volta e restituisce quella riga in formato stringa. Abbiamo bisogno di un array di stringhe per memorizzare ogni riga. Visualizziamo il contenuto del file utilizzando lo stesso array di stringhe.

Esiste un altro modo per leggere un file ed è utilizzare un oggetto StreamReader. Anche lo StreamReader legge una riga alla volta e restituisce una stringa. Tutti i modi sopra menzionati per leggere un file sono illustrati nel codice di esempio fornito di seguito.








// C# program to illustrate how> // to read a file in C#> using> System;> using> System.IO;> > class> Program {> >static> void> Main(>string>[] args)> >{> >// Store the path of the textfile in your system> >string> file =>@'M:DocumentsTextfile.txt'>;> > >Console.WriteLine(>'Reading File using File.ReadAllText()'>);> > >// To read the entire file at once> >if> (File.Exists(file)) {> >// Read all the content in one string> >// and display the string> >string> str = File.ReadAllText(file);> >Console.WriteLine(str);> >}> >Console.WriteLine();> > >Console.WriteLine(>'Reading File using File.ReadAllLines()'>);> > >// To read a text file line by line> >if> (File.Exists(file)) {> >// Store each line in array of strings> >string>[] lines = File.ReadAllLines(file);> > >foreach>(>string> ln>in> lines)> >Console.WriteLine(ln);> >}> >Console.WriteLine();> > >Console.WriteLine(>'Reading File using StreamReader'>);> > >// By using StreamReader> >if> (File.Exists(file)) {> >// Reads file line by line> >StreamReader Textfile =>new> StreamReader(file);> >string> line;> > >while> ((line = Textfile.ReadLine()) !=>null>) {> >Console.WriteLine(line);> >}> > >Textfile.Close();> > >Console.ReadKey();> >}> >Console.WriteLine();> >}> }>

>

>

Per eseguire questo programma, salvare il file con .cs estensione e quindi può essere eseguito utilizzando csc nomefile.cs comando su cmd. Oppure puoi utilizzare Visual Studio . Qui abbiamo un file di testo denominato come File di testo.txt che hanno il contenuto mostrato nell'output.

Produzione:

lettura di file di testo in C#

Scrivere un file di testo: La classe File in C# definisce due metodi statici per scrivere un file di testo, vale a dire File.WriteAllText() E File.WriteAllLines() .

  • File.WriteAllText() scrive l'intero file in una sola volta. Richiede due argomenti, il percorso del file e il testo che deve essere scritto.
  • File.WriteAllLines() scrive un file una riga alla volta. Richiede due argomenti, il percorso del file e il testo da scrivere, che è un array di stringhe.

Esiste un altro modo per scrivere su un file, ovvero utilizzando un oggetto StreamWriter. Anche lo StreamWriter scrive una riga alla volta. Tutti e tre i metodi di scrittura creano un nuovo file se il file non esiste, ma se il file è già presente nella posizione specificata viene sovrascritto. Tutti i modi sopra menzionati per scrivere su un file di testo sono illustrati nel codice di esempio fornito di seguito.




// C# program to illustrate how> // to write a file in C#> using> System;> using> System.IO;> > class> Program {> >static> void> Main(>string>[] args)> >{> >// Store the path of the textfile in your system> >string> file =>@'M:DocumentsTextfile.txt'>;> > >// To write all of the text to the file> >string> text =>'This is some text.'>;> >File.WriteAllText(file, text);> > >// To display current contents of the file> >Console.WriteLine(File.ReadAllText(file));> >Console.WriteLine();> > >// To write text to file line by line> >string>[] textLines1 = {>'This is the first line'>,> >'This is the second line'>,> >'This is the third line'> };> > >File.WriteAllLines(file, textLines1);> > >// To display current contents of the file> >Console.WriteLine(File.ReadAllText(file));> > >// To write to a file using StreamWriter> >// Writes line by line> >string>[] textLines2 = {>'This is the new first line'>,> >'This is the new second line'> };> > >using>(StreamWriter writer =>new> StreamWriter(file))> >{> >foreach>(>string> ln>in> textLines2)> >{> >writer.WriteLine(ln);> >}> >}> >// To display current contents of the file> >Console.WriteLine(File.ReadAllText(file));> > >Console.ReadKey();> >}> }>

>

>

Per eseguire questo programma, salvare il file con .cs estensione e quindi può essere eseguito utilizzando csc nomefile.cs comando su cmd. Oppure puoi utilizzare Visual Studio .

Produzione:

scrivere un file in C#

Nel caso in cui desideri aggiungere più testo a un file esistente senza sovrascrivere i dati già memorizzati in esso, puoi utilizzare i metodi append forniti dalla classe File di System.IO.




using> System;> using> System.IO;> > class> Program {> >static> void> Main(>string>[] args)> >{> >// Store the path of the textfile in your system> >string> file =>@'M:DocumentsTextfile.txt'>;> > >// To write all of the text to the file> >string> text1 =>'This is some text.'>;> >File.WriteAllText(file, text1);> > >// To append text to a file> >string> text2 =>'This is text to be appended'>;> >File.AppendAllText(file, text2);> > >// To display current contents of the file> >Console.WriteLine(File.ReadAllText(file));> >Console.ReadKey();> >}> }>

>

è uguale al metodo Java
>

Produzione:

aggiungere testo in un file in C#