Mellékelt példában három kontrol aktuális értékét írjuk bináris formában egy állományba, majd olvassuk onnan vissza. Így például helyet kap egy CheckBox logikai típusú Checked property-je, egy TrackBar kontrol Int32 típusú Value property-je és egy TextBox sztring típusú Text property-je.
Az állomány kezeléshez szükségünk lesz egy FileStream osztályra, mellyel létrehozhatjuk azt.
private void button1_Click(object sender, System.EventArgs e)
{
FileStream fs = new FileStream("status.dat", FileMode.Create);
A bináris adatok írásához egy BinaryWriter osztály fog segíteni bennünket.
BinaryWriter bw = new BinaryWriter(fs);
Ennek Write függvénye szinte az összes adattípus írására képes, így nincs más teendőnk, mint a kiírandó adatot átadni paraméterként.
bw.Write(checkBox1.Checked);
bw.Write(trackBar1.Value);
bw.Write(textBox1.Text);
Végül zárjuk az állományt.
Az így eltárolt három property értékét vissza is olvashatjuk és ezzel visszaállíthatjuk a mentéskor lévő állapotot.
A megvalósításhoz szintén egy FileStream osztályt használunk, melyen keresztül az állományt kezelhetjük.
private void button3_Click(object sender, System.EventArgs e)
{
FileStream fs = new FileStream("status.dat", FileMode.Open);
Bináris adatok olvasásához a BinaryReader osztályt kell használnunk.
BinaryReader br = new BinaryReader(fs);
Ennek van számos Read szöveggel kezdődő függvénye. Ezek mindegyike annak a típusnak nevével végződik, mely adattípust olvasni tudja. Így logikai érték olvasásához a ReadBoolean függvény használata szükséges. Minden ReadXXX függvény paraméter nélküli és visszatérési értéke egyezik az olvasott adat típusával.
checkBox1.Checked = br.ReadBoolean();
trackBar1.Value = br.ReadInt32();
textBox1.Text = br.ReadString();
Az olvasás után nincs más teendőnk, mint ismét csak zárni az állományt.