|
Leggere e scrivere i files in C# |
| In questo articolo vedremo come aprire un file, leggere il suo contenuto e scriverci all'interno. |
FileInfo
Iniziamo subito con il presentare un interfaccia che ci permette di copiare, cancellare, spostare e anche di aprire un files. parliamo della classe FileInfo facente parte del namespace System.IO;
Quindi per prima cosa aggiungere nel nostro sorgente la stringa:
using System.IO;
La classe FileInfo possiede tra gli altri i seguenti metodi:
- CopyTo: copia il file nella directory specificata
- Delete: cancella il file
- MoveTo: sposta il file nella cartella specificata
- CreateText: restituisce un oggetto StreamWriter
e le seguenti proprietà:
- CreationTime: data ora di creazione del file
- Directory: percorso in cui sitrova il file
- DirectoryName: percorso completa
- Exists: restituisce true se il file esiste
- Extension: l'estensione del file
Inutile dire che questo oggetto ci permette di effettuare le più comuni operazioni sui files, ma non è sufficente da solo per leggere e scrivere il contenuto di un file. Utilizzando il metodo CreateText ci viene restituito un oggetto di tipo StreamWriter, al contrario per leggere le informazioni contenute in un file utilizzeremo il metodo OpenText che ci restituisce un oggetto di tipo StreamReader. Vediamo come funziona:
StreamWriter
Per effettuare le operazioni di scrittura su file utilizzeremo questo oggetto, vediamo alcuni dei suoi metodi:
- Write: scrive nel file
- WriteLine: scrive una nuova riga nel file
- Close: chiude il file
Esempio:
FileInfo fi = new FileInfo("prova.txt")
StreamWriter wr = fi.CreateText();
wr.WriteLine("Sopra la panca la capra campa");
wr.Close();
StreamReader
Per effettuare le operazioni di lettura utilizzeremo questo oggetto, vediamo alcune delle sue proprietà:
- Read: restituisce l'intervallo di caratteri specificato
- ReadLine: restituisce una riga del file
- ReadToEnd: legge il file dalla posizione corrente fino alla fine
- Close: chiude il file
Esempio:
StreamReader sr = File.OpenText("prova.txt");
string sBuff = null;
while ((sBuff = sr.ReadLine()) != null)
{
Console.WriteLine(sBuff);
}
sr.Close();
FileStream
In alternativa a StreamWriter e StreamReader è anche possibile utilizzare un filestream, questo tipo di oggetto viene restituito da FileInfo.Open(), open ci permette di aprire un file in sola lettura, in lettura e scrittura, in append.
Esempio:
FileInfo fi = new FileInfo("prova.txt");
FileStream fs = fi.Open(FileMode.OpenorWrite, FileAccess.Read);
|
|