Skip to main content
.NET Framework Class Library
BinaryWriter Class

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

Inheritance Hierarchy
SystemObject
  System.IOBinaryWriter

Namespace:   System.IO
Assembly:  mscorlib (in mscorlib.dll)
Syntax
<[%$TOPIC/ft83zssf_en-us_VS_110_2_0_0_0_0%]> _
<[%$TOPIC/ft83zssf_en-us_VS_110_2_0_0_0_1%](True)> _
Public Class BinaryWriter _
	Implements [%$TOPIC/ft83zssf_en-us_VS_110_2_0_0_0_2%]
[[%$TOPIC/ft83zssf_en-us_VS_110_2_0_1_0_0%]]
[[%$TOPIC/ft83zssf_en-us_VS_110_2_0_1_0_1%](true)]
public class BinaryWriter : [%$TOPIC/ft83zssf_en-us_VS_110_2_0_1_0_2%]
[[%$TOPIC/ft83zssf_en-us_VS_110_2_0_2_0_0%]]
[[%$TOPIC/ft83zssf_en-us_VS_110_2_0_2_0_1%](true)]
public ref class BinaryWriter : [%$TOPIC/ft83zssf_en-us_VS_110_2_0_2_0_2%]
[<[%$TOPIC/ft83zssf_en-us_VS_110_2_0_3_0_0%]>]
[<[%$TOPIC/ft83zssf_en-us_VS_110_2_0_3_0_1%](true)>]
type BinaryWriter =  
    class 
        interface [%$TOPIC/ft83zssf_en-us_VS_110_2_0_3_0_2%] 
    end

The BinaryWriter type exposes the following members.

Constructors
  NameDescription
Protected method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps BinaryWriterInitializes a new instance of the BinaryWriter class that writes to a stream.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps BinaryWriter(Stream)Initializes a new instance of the BinaryWriter class based on the specified stream and using UTF-8 encoding.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps BinaryWriter(Stream, Encoding)Initializes a new instance of the BinaryWriter class based on the specified stream and character encoding.
Public method Supported in .NET for Windows Store apps BinaryWriter(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.
Top
Properties
  NameDescription
Public property Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps BaseStreamGets the underlying stream of the BinaryWriter.
Top
Methods
  NameDescription
Public method Supported by the XNA Framework CloseCloses the current BinaryWriter and the underlying stream.
Public method Supported by Portable Class Library Supported in .NET for Windows Store apps DisposeReleases all resources used by the current instance of the BinaryWriter class.
Protected method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Dispose(Boolean)Releases the unmanaged resources used by the BinaryWriter and optionally releases the managed resources.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Equals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps FlushClears all buffers for the current writer and causes any buffered data to be written to the underlying device.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps GetHashCodeServes as the default hash function. (Inherited from Object.)
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps GetTypeGets the Type of the current instance. (Inherited from Object.)
Protected method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps MemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps SeekSets the position within the current stream.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps ToStringReturns a string that represents the current object. (Inherited from Object.)
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Write(Boolean)Writes a one-byte Boolean value to the current stream, with 0 representing false and 1 representing true.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Write(Byte)Writes an unsigned byte to the current stream and advances the stream position by one byte.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Write(Byte)Writes a byte array to the underlying stream.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps 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.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps 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.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Write(Decimal)Writes a decimal value to the current stream and advances the stream position by sixteen bytes.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Write(Double)Writes an eight-byte floating-point value to the current stream and advances the stream position by eight bytes.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Write(Int16)Writes a two-byte signed integer to the current stream and advances the stream position by two bytes.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Write(Int32)Writes a four-byte signed integer to the current stream and advances the stream position by four bytes.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Write(Int64)Writes an eight-byte signed integer to the current stream and advances the stream position by eight bytes.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Write(SByte)Writes a signed byte to the current stream and advances the stream position by one byte.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Write(Single)Writes a four-byte floating-point value to the current stream and advances the stream position by four bytes.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps 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.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Write(UInt16)Writes a two-byte unsigned integer to the current stream and advances the stream position by two bytes.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Write(UInt32)Writes a four-byte unsigned integer to the current stream and advances the stream position by four bytes.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Write(UInt64)Writes an eight-byte unsigned integer to the current stream and advances the stream position by eight bytes.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Write(Byte, Int32, Int32)Writes a region of a byte array to the current stream.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps 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.
Protected method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Write7BitEncodedIntWrites a 32-bit integer in a compressed format.
Top
Fields
  NameDescription
Public field Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps NullSpecifies a BinaryWriter with no backing store.
Protected field Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps OutStreamHolds the underlying stream.
Top
Explicit Interface Implementations
  NameDescription
Explicit interface implemetation Private method Supported by the XNA Framework IDisposableDisposePerforms application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Top
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 noteImportant

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.

Examples

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

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
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);
        }
    }
}
Version Information

.NET Framework

Supported in: 4.5, 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

.NET for Windows Store apps

Supported in: Windows 8

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8
Platforms

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

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

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