Page 694 - Informatica dalla A a Z
P. 694
Utilizzo dei File
Tutti i tipi di operazioni di input e output (I/O) in C# sono basati sull’utilizzo di stream,
ovvero delle rappresentazioni di dispositivi seriali, come ad esempio un flusso di rete, un
indirizzo di memoria o un file. Grazie ad essi non dobbiamo preoccuparci del modo in cui i
nostri dati fluiscono, in quanto ceffettuano un’astrazione del dispositivo trattato.
Esistono due tipi di stream, quelli di input e quelli di output.
Le classi che rappresentano uno stream in C# sono molteplici, e sono contenute nel na-
mespace System.IO.
La classe File permette di compiere numerose operazioni sui file (copia, sposta, cancella,
crea, etc.
La classe FileInfo permette di creare facilmente un oggetto istanza di questa classe, sem-
plicemente passando al suo costruttore il path del file:
FileInfo fileEsempio = new FileInfo(@"C:\FileDiEsempio.txt");
Nota: L’utilizzo della @ fa si che la stringa venga interpretata come tale e che la ‘\’ non
venga considerata l’inizio di una sequenza di escape.
Vi sono diversi metodi per creare un oggetto di tipo FileStream. Il metodo più semplice
consiste nel passare al costruttore due parametri: il path del file e la modalità di accesso o
creazione:
FileStream stream = File.Open(@"C:\FileDiEsempio.txt", FileMode.Open);
Questa classe (Filestream) agisce su byte e array di byte. Per agire su stringhe si utilizzerà
la classe StreamReader e StreamWriter, che permettono, rispettivamente, di leggere e
scrivere con facilità flussi di caratteri.
La scrittura su file è elementare:
StreamReader reader = new StreamReader(@"C:\FileDiEsempio.txt");
Console.WriteLine(reader.ReadToEnd());
reader.Close();
Per scrivere in posizioni arbitrarie del file è necessario utilizzare un FileStream. Gli oggetti
di questa classemantengono al loro interno un puntatore che indica la posizione dove verrà
effettuata la prossima lettura o scrittura; La posizione è modificabile attraverso il metodo
Seek().
Random Access File
690