Per arrivare alla serializzazione dei dati, è necessario imparare a gestire i file binari.
Un file binario non può essere letto "a occhio nudo" (cioè, non è interpretabile visivamente come un file di testo).
Per leggere o scrivere byte su file binari non possiamo usare StreamReader o StreamWriter, perché questi strumenti sono pensati solo per i file di testo (ASCII).
Nel caso dei file binari, dobbiamo usare FileStream, eventualmente insieme ad altre classi specifiche.
Esempio:
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
FileMode e FileAccessFileMode indica come aprire il file:
Create: crea un nuovo file. Se esiste già, lo sovrascrive.Open: apre un file esistente.Append: apre un file esistente e si posiziona alla fine per aggiungere dati.Truncate: apre un file esistente e ne cancella il contenuto.FileAccess indica che tipo di operazione è consentita:
Read: letturaWrite: scritturaReadWrite: lettura e scritturaNota: FileShare è un altro parametro che puoi approfondire in seguito. Serve a stabilire le modalità di condivisione del file tra più processi.
Durante l'anno, ci interesseranno soprattutto le seguenti combinazioni:
FileMode.Open con FileAccess.ReadFileMode.Create con FileAccess.Write