Binary​Writer Class

Definition

Writes primitive types in binary to a stream and supports writing strings in a specific encoding.

[System.Runtime.InteropServices.ComVisible(true)]
public class BinaryWriter : IDisposable
Inheritance
BinaryWriter
Attributes
Implements

Inherited Members

Examples

The following code example demonstrates how to store and retrieve application settings in a file.

using System;
using System.IO;

class ConsoleApplication
{
    const string fileName = "AppSettings.dat";

    static void Main()
    {
        WriteDefaultValues();
        DisplayValues();
    }

    public static void WriteDefaultValues()
    {
        using (BinaryWriter writer = new BinaryWriter(File.Open(fileName, FileMode.Create)))
        {
            writer.Write(1.250F);
            writer.Write(@"c:\Temp");
            writer.Write(10);
            writer.Write(true);
        }
    }

    public static void DisplayValues()
    {
        float aspectRatio;
        string tempDirectory;
        int autoSaveTime;
        bool showStatusBar;

        if (File.Exists(fileName))
        {
            using (BinaryReader reader = new BinaryReader(File.Open(fileName, FileMode.Open)))
            {
                aspectRatio = reader.ReadSingle();
                tempDirectory = reader.ReadString();
                autoSaveTime = reader.ReadInt32();
                showStatusBar = reader.ReadBoolean();
            }

            Console.WriteLine("Aspect ratio set to: " + aspectRatio);
            Console.WriteLine("Temp directory is: " + tempDirectory);
            Console.WriteLine("Auto save time set to: " + autoSaveTime);
            Console.WriteLine("Show status bar: " + showStatusBar);
        }
    }
}
Imports System.IO

Module Module1
    Const fileName As String = "AppSettings.dat"

    Sub Main()
        WriteDefaultValues()
        DisplayValues()
    End Sub

    Sub WriteDefaultValues()
        Using writer As BinaryWriter = New BinaryWriter(File.Open(fileName, FileMode.Create))
            writer.Write(1.25F)
            writer.Write("c:\Temp")
            writer.Write(10)
            writer.Write(True)
        End Using
    End Sub

    Sub DisplayValues()
        Dim aspectRatio As Single
        Dim tempDirectory As String
        Dim autoSaveTime As Integer
        Dim showStatusBar As Boolean

        If (File.Exists(fileName)) Then

            Using reader As BinaryReader = New BinaryReader(File.Open(fileName, FileMode.Open))
                aspectRatio = reader.ReadSingle()
                tempDirectory = reader.ReadString()
                autoSaveTime = reader.ReadInt32()
                showStatusBar = reader.ReadBoolean()
            End Using

            Console.WriteLine("Aspect ratio set to: " & aspectRatio)
            Console.WriteLine("Temp directory is: " & tempDirectory)
            Console.WriteLine("Auto save time set to: " & autoSaveTime)
            Console.WriteLine("Show status bar: " & showStatusBar)
        End If
    End Sub

End Module

Remarks

The BinaryWriter class provides methods that simplify writing primitive data types to a stream. For example, you can use the Write method to write a Boolean value to the stream as a one-byte value. The class includes write methods that support different data types.

When you create a new instance of the BinaryWriter class, you provide the stream to write to, and optionally specify the type of encoding and whether to leave the stream open after disposing the BinaryWriter object. If you do not specify an encoding type, UTF-8 is used.

Important

This type implements the IDisposable interface. When you have finished using the type, you should dispose of it either directly or indirectly. To dispose of the type directly, call its Dispose method in a try/catch block. To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). For more information, see the “Using an Object that Implements IDisposable” section in the IDisposable interface topic.

A derived class can override the methods of this class to give unique character encodings.

Constructors

Binary​Writer()

Initializes a new instance of the BinaryWriter class that writes to a stream.

Binary​Writer(​Stream)

Initializes a new instance of the BinaryWriter class based on the specified stream and using UTF-8 encoding.

Binary​Writer(​Stream, ​Encoding)

Initializes a new instance of the BinaryWriter class based on the specified stream and character encoding.

Binary​Writer(​Stream, ​Encoding, ​Boolean)

Initializes a new instance of the BinaryWriter class based on the specified stream and character encoding, and optionally leaves the stream open.

Fields

Null

Specifies a BinaryWriter with no backing store.

Out​Stream

Holds the underlying stream.

Properties

Base​Stream

Gets the underlying stream of the BinaryWriter.

Methods

Close()

Closes the current BinaryWriter and the underlying stream.

Dispose()

Releases all resources used by the current instance of the BinaryWriter class.

Dispose(​Boolean)

Releases the unmanaged resources used by the BinaryWriter and optionally releases the managed resources.

Flush()

Clears all buffers for the current writer and causes any buffered data to be written to the underlying device.

Seek(​Int32, ​Seek​Origin)

Sets the position within the current stream.

Write(​Byte[], ​Int32, ​Int32)

Writes a region of a byte array to the current stream.

Write(​UInt64)

Writes an eight-byte unsigned integer to the current stream and advances the stream position by eight bytes.

Write(​UInt32)

Writes a four-byte unsigned integer to the current stream and advances the stream position by four bytes.

Write(​UInt16)

Writes a two-byte unsigned integer to the current stream and advances the stream position by two bytes.

Write(​String)

Writes a length-prefixed string to this stream in the current encoding of the BinaryWriter, and advances the current position of the stream in accordance with the encoding used and the specific characters being written to the stream.

Write(​Single)

Writes a four-byte floating-point value to the current stream and advances the stream position by four bytes.

Write(​SByte)

Writes a signed byte to the current stream and advances the stream position by one byte.

Write(​Int64)

Writes an eight-byte signed integer to the current stream and advances the stream position by eight bytes.

Write(​Char)

Writes a Unicode character to the current stream and advances the current position of the stream in accordance with the Encoding used and the specific characters being written to the stream.

Write(​Int16)

Writes a two-byte signed integer to the current stream and advances the stream position by two bytes.

Write(​Double)

Writes an eight-byte floating-point value to the current stream and advances the stream position by eight bytes.

Write(​Decimal)

Writes a decimal value to the current stream and advances the stream position by sixteen bytes.

Write(​Char[])

Writes a character array to the current stream and advances the current position of the stream in accordance with the Encoding used and the specific characters being written to the stream.

Write(​Char[], ​Int32, ​Int32)

Writes a section of a character array to the current stream, and advances the current position of the stream in accordance with the Encoding used and perhaps the specific characters being written to the stream.

Write(​Byte[])

Writes a byte array to the underlying stream.

Write(​Byte)

Writes an unsigned byte to the current stream and advances the stream position by one byte.

Write(​Boolean)

Writes a one-byte Boolean value to the current stream, with 0 representing false and 1 representing true.

Write(​Int32)

Writes a four-byte signed integer to the current stream and advances the stream position by four bytes.

Write7​Bit​Encoded​Int(​Int32)

Writes a 32-bit integer in a compressed format.