I file binari sono file che permettono di scrivere e leggere direttamente byte, senza utilizzare formati di testo (come XML o JSON). Sono utili per archiviare dati in modo compatto e veloce, specialmente quando si lavora con dati primitivi (interi, booleani, caratteri, ecc.).
WriteByte(byte value): scrive un solo byte nel file.Write(byte[] buffer): scrive un array di byte.ReadByte(): legge un solo byte.Read(byte[] buffer, int offset, int count): restituisce un array di byte. È possibile specificare quanti byte leggere e da dove partire nell'array di destinazione.Se voglio scrivere dati primitivi (come int, float, char), posso farlo in modo efficiente usando una sequenza di byte, senza passare da un formato testuale (come XML).
Per questo utilizzo due classi principali:
BinaryWriter per scrivere dati primitivi.BinaryReader per leggere dati primitivi.Il vantaggio principale di BinaryWriter e BinaryReader è che convertono automaticamente i dati nel loro formato binario corretto. Quando li leggo, ottengo il valore nel suo formato di origine (es. int, float, bool, ecc.), senza dover gestire manualmente la codifica o il parsing.
BinaryWriterFileStream fs = new FileStream("file.dat", FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
// Scrittura di esempio
bw.Write(42); // Scrive un int (4 byte)
bw.Write("ciao"); // Scrive una stringa (con lunghezza + contenuto)
bw.Write(true); // Scrive un booleano (1 byte)
bw.Close(); // Chiude il writer e il FileStream