Export (0) Print
Expand All

BinaryReader Class

Reads primitive data types as binary values in a specific encoding.

System.Object
  System.IO.BinaryReader

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

'Declaration
<ComVisibleAttribute(True)> _
Public Class BinaryReader _
	Implements IDisposable

The BinaryReader type exposes the following members.

  NameDescription
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryBinaryReader(Stream)Initializes a new instance of the BinaryReader class based on the supplied stream and using UTF8Encoding.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryBinaryReader(Stream, Encoding)Initializes a new instance of the BinaryReader class based on the supplied stream and a specific character encoding.
Top

  NameDescription
Public propertySupported by the XNA FrameworkSupported by Portable Class LibraryBaseStreamExposes access to the underlying stream of the BinaryReader.
Top

  NameDescription
Public methodSupported by the XNA FrameworkCloseCloses the current reader and the underlying stream.
Public methodSupported by Portable Class LibraryDisposeReleases all resources used by the current instance of the BinaryReader class.
Protected methodSupported by the XNA FrameworkSupported by Portable Class LibraryDispose(Boolean)Releases the unmanaged resources used by the BinaryReader class and optionally releases the managed resources.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodSupported by the XNA FrameworkSupported by Portable Class LibraryFillBufferFills the internal buffer with the specified number of bytes read from the stream.
Protected methodSupported by the XNA FrameworkSupported by Portable Class LibraryFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodSupported by the XNA FrameworkSupported by Portable Class LibraryMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryPeekCharReturns the next available character and does not advance the byte or character position.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryReadReads characters from the underlying stream and advances the current position of the stream in accordance with the Encoding used and the specific character being read from the stream.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryRead(Byte(), Int32, Int32)Reads the specified number of bytes from the stream, starting from a specified point in the byte array.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryRead(Char(), Int32, Int32)Reads the specified number of characters from the stream, starting from a specified point in the character array.
Protected methodSupported by the XNA FrameworkSupported by Portable Class LibraryRead7BitEncodedIntReads in a 32-bit integer in compressed format.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryReadBooleanReads a Boolean value from the current stream and advances the current position of the stream by one byte.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryReadByteReads the next byte from the current stream and advances the current position of the stream by one byte.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryReadBytesReads the specified number of bytes from the current stream into a byte array and advances the current position by that number of bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryReadCharReads the next character from the current stream and advances the current position of the stream in accordance with the Encoding used and the specific character being read from the stream.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryReadCharsReads the specified number of characters from the current stream, returns the data in a character array, and advances the current position in accordance with the Encoding used and the specific character being read from the stream.
Public methodSupported by the XNA FrameworkReadDecimalReads a decimal value from the current stream and advances the current position of the stream by sixteen bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryReadDoubleReads an 8-byte floating point value from the current stream and advances the current position of the stream by eight bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryReadInt16Reads a 2-byte signed integer from the current stream and advances the current position of the stream by two bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryReadInt32Reads a 4-byte signed integer from the current stream and advances the current position of the stream by four bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryReadInt64Reads an 8-byte signed integer from the current stream and advances the current position of the stream by eight bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryReadSByteReads a signed byte from this stream and advances the current position of the stream by one byte.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryReadSingleReads a 4-byte floating point value from the current stream and advances the current position of the stream by four bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryReadStringReads a string from the current stream. The string is prefixed with the length, encoded as an integer seven bits at a time.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryReadUInt16Reads a 2-byte unsigned integer from the current stream using little-endian encoding and advances the position of the stream by two bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryReadUInt32Reads a 4-byte unsigned integer from the current stream and advances the position of the stream by four bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryReadUInt64Reads an 8-byte unsigned integer from the current stream and advances the position of the stream by eight bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryToStringReturns a string that represents the current object. (Inherited from Object.)
Top

  NameDescription
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIDisposable.DisposeReleases all resources used by the BinaryReader.
Top

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

    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))
            Try

                ' 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()
                    Return
                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)
            Finally
                binReader.Close()
            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))
        Try
            binWriter.Write(aspRatio)
            binWriter.Write(lkupDir)
            binWriter.Write(saveTime)
            binWriter.Write(statusBar)
        Finally
            binWriter.Close()
        End Try
    End Sub

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

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

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

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

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(), _
            appSettings.ShowStatusBar.ToString()})

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

        ' Save the new settings.
        appSettings.Close()

    End Sub
End Class


.NET Framework

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

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

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

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

Community Additions

ADD
Show:
© 2014 Microsoft