Skip to main content
BinaryReader Class
 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

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

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

SystemObject
  System.IOBinaryReader

[ComVisibleAttribute(true)]
public class BinaryReader : IDisposable
[ComVisibleAttribute(true)]
public ref class BinaryReader : IDisposable
[<ComVisibleAttribute(true)>]
type BinaryReader = 
    class
        interface IDisposable
    end
<ComVisibleAttribute(True)>
Public Class BinaryReader
	Implements IDisposable
NameDescription
System_CAPS_pubmethod BinaryReader

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

System_CAPS_pubmethod BinaryReader

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

System_CAPS_pubmethod BinaryReader

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

NameDescription
System_CAPS_pubproperty

Exposes access to the underlying stream of the BinaryReader.

NameDescription
System_CAPS_pubmethod Close

Closes the current reader and the underlying stream.

System_CAPS_pubmethod Dispose

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

System_CAPS_protmethod Dispose

Releases the unmanaged resources used by the BinaryReader class and optionally releases the managed resources.

System_CAPS_pubmethod Equals

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethod FillBuffer

Fills the internal buffer with the specified number of bytes read from the stream.

System_CAPS_protmethod Finalize

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethod GetHashCode

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethod GetType

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_protmethod MemberwiseClone

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethod PeekChar

Returns the next available character and does not advance the byte or character position.

System_CAPS_pubmethod Read

Reads 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.

System_CAPS_pubmethod Read

Reads the specified number of bytes from the stream, starting from a specified point in the byte array.

System_CAPS_pubmethod Read

Reads the specified number of characters from the stream, starting from a specified point in the character array.

System_CAPS_protmethod Read7BitEncodedInt

Reads in a 32-bit integer in compressed format.

System_CAPS_pubmethod ReadBoolean

Reads a Boolean value from the current stream and advances the current position of the stream by one byte.

System_CAPS_pubmethod ReadByte

Reads the next byte from the current stream and advances the current position of the stream by one byte.

System_CAPS_pubmethod ReadBytes

Reads the specified number of bytes from the current stream into a byte array and advances the current position by that number of bytes.

System_CAPS_pubmethod ReadChar

Reads 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.

System_CAPS_pubmethod ReadChars

Reads 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.

System_CAPS_pubmethod ReadDecimal

Reads a decimal value from the current stream and advances the current position of the stream by sixteen bytes.

System_CAPS_pubmethod ReadDouble

Reads an 8-byte floating point value from the current stream and advances the current position of the stream by eight bytes.

System_CAPS_pubmethod ReadInt16

Reads a 2-byte signed integer from the current stream and advances the current position of the stream by two bytes.

System_CAPS_pubmethod ReadInt32

Reads a 4-byte signed integer from the current stream and advances the current position of the stream by four bytes.

System_CAPS_pubmethod ReadInt64

Reads an 8-byte signed integer from the current stream and advances the current position of the stream by eight bytes.

System_CAPS_pubmethod ReadSByte

Reads a signed byte from this stream and advances the current position of the stream by one byte.

System_CAPS_pubmethod ReadSingle

Reads a 4-byte floating point value from the current stream and advances the current position of the stream by four bytes.

System_CAPS_pubmethod ReadString

Reads a string from the current stream. The string is prefixed with the length, encoded as an integer seven bits at a time.

System_CAPS_pubmethod ReadUInt16

Reads a 2-byte unsigned integer from the current stream using little-endian encoding and advances the position of the stream by two bytes.

System_CAPS_pubmethod ReadUInt32

Reads a 4-byte unsigned integer from the current stream and advances the position of the stream by four bytes.

System_CAPS_pubmethod ReadUInt64

Reads an 8-byte unsigned integer from the current stream and advances the position of the stream by eight bytes.

System_CAPS_pubmethod ToString

Returns a string that represents the current object.(Inherited from Object.)

The BinaryReader class provides methods that simplify reading primitive data types from a stream. For example, you can use the ReadBoolean method to read the next byte as a Boolean value and advance the current position in the stream by one byte. The class includes read methods that support different data types.

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

System_CAPS_importantImportant

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.

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
Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1

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

Return to top