Obiettivi
Uso dei file attraverso lo Stream (flusso)
Contenuti
Un file è una raccolta ordinata e denominata di byte con archivio permanente. Quando si lavora con i file, si usano i percorsi di directory, l’archiviazione su disco e i nomi di file e directory. Al contrario, un flusso è una sequenza di byte che è possibile usare per leggere e scrivere in un archivio di backup, che può essere uno fra vari supporti di archiviazione (ad esempio, dischi o memoria). Così come esistono vari archivi di backup che non siano dischi, sono disponibili diversi tipi di flussi che non siano flussi di file, ad esempio la rete, la memoria e i flussi delle pipe.
È possibile utilizzare i tipi nello spazio dei nomi System.IO per interagire con i file e le directory. Ad esempio, è possibile ottenere e impostare le proprietà dei file e delle directory e recuperare le raccolte di file e directory in base ai criteri di ricerca.
La classe di base astratta Stream supporta la lettura e la scrittura di byte. Tutte le classi che rappresentano flussi ereditano dalla classe Stream. La classe Stream e le relative classi derivate forniscono una rappresentazione comune degli archivi e delle origini dati, separando così il programmatore dai dettagli specifici del sistema operativo e dei dispositivi sottostanti.
I flussi implicano tre operazioni fondamentali:
-
Lettura: trasferimento di dati da un flusso a una struttura di dati, quale una matrice di byte.
-
Scrittura: trasferimento di dati da un’origine dati a un flusso.
-
Ricerca: interrogazione di un flusso e modifica della posizione corrente al suo interno.
A seconda dell’origine dati o dell’archivio sottostante, è possibile che un flusso supportino queste funzionalità solo in parte. Ad esempio, la classe PipeStream non supporta la ricerca. Le proprietà CanRead, CanWrite e CanSeek di un flusso specificano le operazioni supportate dal flusso.
Corso C# - Gestione file
Michele De Benedittis
Docente