This documentation is archived and is not being maintained.

BinaryWriter Class

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

Namespace:  System.IO
Assembly:  mscorlib (in mscorlib.dll)

<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Class BinaryWriter _
	Implements IDisposable
Dim instance As BinaryWriter

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

For a list of common I/O tasks, see Common I/O Tasks.

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

Imports Microsoft.VisualBasic
Imports System
Imports System.IO
Imports System.Security.Permissions

' Store and retrieve application settings. 
Public Class AppSettings

    Const fileName As String = "AppSettings#@@#.dat" 
    Dim aspRatio As Single
    Dim lkupDir As String 
    Dim saveTime As Integer 
    Dim statusBar As Boolean 

    Property AspectRatio As Single
            Return aspRatio
        End Get 
            aspRatio = Value
        End Set 
    End Property 

    Property LookupDir As String 
            Return lkupDir
        End Get 
            lkupDir = Value
        End Set 
    End Property 

    Property AutoSaveTime As Integer 
            Return saveTime
        End Get 
            saveTime = Value
        End Set 
    End Property 

    Property ShowStatusBar As Boolean 
            Return statusBar
        End Get 
            statusBar = Value
        End Set 
    End Property 

    Sub New()

        ' Create default application settings.
        aspRatio   = 1.3333
        lkupDir     = "C:\AppDirectory"
        saveTime  = 30
        statusBar = False 

        If File.Exists(fileName) Then 
            Dim binReader As New BinaryReader( _
                File.Open(fileName, FileMode.Open))

                ' If the file is not empty, 
                ' read the application settings. 
                ' First read 4 bytes into a buffer to  
                ' determine if the file is empty. 
                Dim testArray As Byte() = {0,0,0,0}
                Dim count As Integer = binReader.Read(testArray, 0, 3)

                If count <> 0 Then 

                    ' Reset the position in the stream to zero.
                    binReader.BaseStream.Seek(0, SeekOrigin.Begin)

                    aspRatio   = binReader.ReadSingle()
                    lkupDir     = binReader.ReadString()
                    saveTime  = binReader.ReadInt32()
                    statusBar = binReader.ReadBoolean()
                End If 

            ' If the end of the stream is reached before reading 
            ' the four data values, ignore the error and use the 
            ' default settings for the remaining values. 
            Catch ex As EndOfStreamException
                Console.WriteLine("{0} caught and ignored. " & _ 
                    "Using default values.", ex.GetType().Name)
            End Try 
        End If 

    End Sub 

    ' Create a file and store the application settings. 
    Sub Close()
        Dim binWriter As New BinaryWriter( _
            File.Open(fileName, FileMode.Create))
        End Try 
    End Sub 

End Class 

Public Class Test
    Shared Sub Main()

        ' Load application settings. 
        Dim appSettings As New AppSettings()
        Console.WriteLine("App settings:" & vbcrLf & "Aspect " & _
            "Ratio: {0}, Lookup directory: {1}," & vbcrLf & "Auto " & _
            "save time: {2} minutes, Show status bar: {3}" & vbCrLf, _
            New Object(3){appSettings.AspectRatio.ToString(), _
            appSettings.LookupDir, _
            appSettings.AutoSaveTime.ToString(), _

        ' Change the settings.
        appSettings.AspectRatio   = 1.250
        appSettings.LookupDir     = "C:\Temp"
        appSettings.AutoSaveTime  = 10
        appSettings.ShowStatusBar = True 

        ' Save the new settings.

    End Sub 
End Class


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

XNA Framework

Supported in: 3.0, 2.0, 1.0