The System.IO.BinaryWriter class is used to write binary data to a stream. This class also provides an option to specify the character encoding including ASCII, Unicode, UTF32, UTF7, and UTF8 encoding.
Create a BinaryWriter
The BinaryWriter constructor has overloaded forms to support a stream and encoding. The following code snippet creates BinaryWriter objects with a stream and character encoding format.
string fileName = @"C:\temp\MC.bin";
BinaryWriter bwStream = new BinaryWriter(new FileStream(fileName,FileMode.Create));
Encoding ascii = Encoding.ASCII;
BinaryWriter bwEncoder = new BinaryWriter(new FileStream(fileName, FileMode.Create), ascii);
Writing Binary to a Stream
The Write overloaded method is used to write primitive data types to a stream. The Write method can write a Boolean, Byte, Char, Decimal, Double, and Integer data types.
The following code snippet creates a BinaryWriter and writes string, Boolean, integer and double data types to the stream.
string authorName = "Mahesh Chand";
int age = 30;
string bookTitle = "ADO.NET Programming using C#";
bool mvp = true;
double price = 54.99;
using (BinaryWriter binWriter =
new BinaryWriter(File.Open(fileName, FileMode.Create)))
{
// Write string
binWriter.Write(authorName);
// Write string
// Write integer
binWriter.Write(age);
binWriter.Write(bookTitle);
// Write boolean
binWriter.Write(mvp);
// Write double
binWriter.Write(price);
}
Sample
Here is a complete sample code that creates a binary file and adds data to it.
public class BinaryReadWriteClass
{
public void WriteBinary()
{
try
{
Console.WriteLine("Binary Writer");
string authorName = "Mahesh Chand";
int age = 30;
string bookTitle = "ADO.NET Programming using C#";
bool mvp = true;
double price = 54.99;
string fileName = @"C:\temp\MC.bin";
BinaryWriter bwStream = new BinaryWriter(new FileStream(fileName,FileMode.Create));
Encoding ascii = Encoding.ASCII;
BinaryWriter bwEncoder = new BinaryWriter(new FileStream(fileName, FileMode.Create), ascii);
using (BinaryWriter binWriter =
new BinaryWriter(File.Open(fileName, FileMode.Create)))
{
// Write string
binWriter.Write(authorName);
// Write string
// Write integer
binWriter.Write(age);
binWriter.Write(bookTitle);
// Write boolean
binWriter.Write(mvp);
// Write double
binWriter.Write(price);
}
Console.WriteLine("Data Written!");
Console.WriteLine();
}
catch (IOException ioexp)
{
Console.WriteLine("Error: {0}", ioexp.Message);
}
}
}