C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Note: Here we see an example of using the BinaryWriter class, which will create the binary file for the example.
File.Open: In this example, File.Open returns a stream that the BinaryWriter writes through to.
Next: We call Write() to write a value to the file. The Write method is overloaded, which means it handles the exact type you pass it correctly.
File.OpenOverloadC# program that uses BinaryWriter
using System.IO;
class Program
{
static void Main()
{
W();
}
static void W()
{
// Create 12 integers.
int[] a = new int[]
{
1,
4,
6,
7,
11,
55,
777,
23,
266,
44,
82,
93
};
// Use using statement and File.Open.
using (BinaryWriter b = new BinaryWriter(
File.Open("file.bin", FileMode.Create)))
{
// Use foreach and write all 12 integers.
foreach (int i in a)
{
b.Write(i);
}
}
}
}
Also: If you call BinaryWriter's virtual Close implementation, it calls Dispose. And Dispose then calls the Stream's Close implementation.
StreamImplementation of Dispose: IL
.method family hidebysig newslot virtual
instance void Dispose(bool disposing) cil managed
{
// Code size 15 (0xf)
.maxstack 8
IL_0000: ldarg.1
IL_0001: brfalse.s IL_000e
IL_0003: ldarg.0
IL_0004: ldfld class System.IO.Stream
System.IO.BinaryWriter::OutStream
IL_0009: callvirt instance void System.IO.Stream::Close()
IL_000e: ret
} // end of method BinaryWriter::Dispose
And: This is because the data is not encoded as a text file but instead a more efficient, machine-level representation of numeric data.
Tip: Don't worry—the file can still be treated as a series of numbers. Buy we must use a program to read it.