Guide C# – Leggere e Scrivere File

help-thumbAprire e leggere file in C# è abbastanza semplice, perchè fortunatamente ci vengono messe a disposizione classi che sono molto adattabili a pressochè un numero enorme di possibilità. Nello stesso modo infatti noi potremmo leggere un file presente su un server ftp, ma questo è un altro discorso biggrin emoticon Andiamo allora a vedere come aprire innanzitutto un file: i metodi sono più che altro 2, in base a come abbiamo precedentemente organizzato il codice.

  1. utilizzare la classe statica File
  2. avere già a disposizione l’oggetto FileInfo che “incapsula” il file

in entrambe i casi la modalità è semplicissima:

FileStream stream = File.Open(@"C:testtext.txt", FileMode.Open);
StreamReader reader = new StreamReader(stream);
Console.WriteLine(reader.ReadToEnd());
reader.Close();

Ma vediamo un attimo il codice… File.Open è un metodo messo a disposizione dalla classe statica File che ci permette di aprire un file scegliendo una modalità particolare (in lettura, scrittura, append ecc.). Esiste infatti un altro metodo, OpenRead, che fa esattamente la stessa cosa. Aperto il file, il metodo Open restituisce uno stream che deve essere letto. Per questo esiste un oggetto creato ad hoc per questo, chiamato con molta fantasia StreamReader che ci permette di leggere il file direttamente come stringa utilizzando la funzione ReadToEnd(), oltre ovviamente a metterci a disposizione le classiche Read e ReadBlock che lavorano con array di char.In realtà esiste un metodo ancora più veloce che ci permette di risparmiare l’oggetto FileStream:

StreamReader reader = new StreamReader(file.FullName);
Console.WriteLine(reader.ReadToEnd());
reader.Close();

Nel secondo caso invece, con un oggetto file di tipo FileInfo:

FileStream stream = file.OpenRead();
StreamReader reader = new StreamReader(stream);
Console.WriteLine(reader.ReadToEnd());
reader.Close();

Per scrivere i file il processo è analogo, soltanto che anzichè aprire il file in lettura occorre aprirlo in scrittura e quindi usare l’oggetto StreamWriter e possiamo così scrivere direttamente delle stringhe di testo o come prima array di caratteri:

StreamWriter writer = new StreamWriter(file.FullName);
writer.WriteLine("ciao ciao");
writer.Close();

Come vedete è assolutamente banale leggere e scrivere i file, tuttavia, come accade nei linguaggi a basso livello, dobbiamo ricordarci di chiudere gli stream quando vengono aperti, per non occupare inutilmente risorse, tramite il metodo Close().A presto!

Questo obbrobrio è stato inavvertitamente inserito nelle categorie "FileSystem, Linguaggi .Net, Programmazione" e parla di , , , , , , , , , , , , , . Se proprio volete, questo è un puntatore diretto (o permalink, fate voi).

4 risposte a Guide C# – Leggere e Scrivere File

  1. Eugenio scrive:

    E’ stato l’articolo più semplice e chiaro sulla lettura/scrittura dei file che ho trovato su internet

  2. Denis scrive:

    Eugenio:

    E’ stato l’articolo più semplice e chiaro sulla lettura/scrittura dei file che ho trovato su internet

    Ciao Eugenio, sono davvero felice di questa tua considerazione! Torna a trovarmi. A presto! ciao emoticon

  3. Stefano scrive:

    Grazie mille!! Molto molto utile!

  4. Vincenzo scrive:

    ho un quesito a riguardo da porti che non riesco a risolvere.

    ho provato a mettere un file di grandi dimensioni su FTP con globalescape.

    nel frattempo dal programmino c# lo faccio scaricare..ed ecco..ho scaricato un file incompleto buono a niente.

    credevo che usando una bella in con reader.CanRead mi potesse risolvere il problema..invece niente..

    come faccio a capire se un file FTP è completo o in scrittura prima di scaricarlo, hai qualche idea? wall emoticon

    ti sarei molto grado se mi rispondessi anche all’indirizzo email.

    ciao