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
   689   690   691   692   693   694   695   696   697   698   699