BinaryWriter Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Writes primitive types in binary to a stream and supports writing strings in a specific encoding.
public ref class BinaryWriter : IDisposable
public ref class BinaryWriter : IAsyncDisposable, IDisposable
public class BinaryWriter : IDisposable
public class BinaryWriter : IAsyncDisposable, IDisposable
[System.Serializable]
public class BinaryWriter : IDisposable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class BinaryWriter : IDisposable
type BinaryWriter = class
interface IDisposable
type BinaryWriter = class
interface IAsyncDisposable
interface IDisposable
[<System.Serializable>]
type BinaryWriter = class
interface IDisposable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type BinaryWriter = class
interface IDisposable
Public Class BinaryWriter
Implements IDisposable
Public Class BinaryWriter
Implements IAsyncDisposable, IDisposable
- Inheritance
-
BinaryWriter
- Attributes
- Implements
Examples
The following code example demonstrates how to store and retrieve application settings in a file.
using System;
using System.IO;
using System.Text;
class ConsoleApplication
{
const string fileName = "AppSettings.dat";
static void Main()
{
WriteDefaultValues();
DisplayValues();
}
public static void WriteDefaultValues()
{
using (var stream = File.Open(fileName, FileMode.Create))
{
using (var writer = new BinaryWriter(stream, Encoding.UTF8, false))
{
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 (var stream = File.Open(fileName, FileMode.Open))
{
using (var reader = new BinaryReader(stream, Encoding.UTF8, false))
{
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);
}
}
}
open System.IO
open System.Text
let fileName = "AppSettings.dat"
let writeDefaultValues () =
use stream = File.Open(fileName, FileMode.Create)
use writer = new BinaryWriter(stream, Encoding.UTF8, false)
writer.Write 1.250F
writer.Write @"c:\Temp"
writer.Write 10
writer.Write true
let displayValues () =
if File.Exists fileName then
use stream = File.Open(fileName, FileMode.Open)
use reader = new BinaryReader(stream, Encoding.UTF8, false)
let aspectRatio = reader.ReadSingle()
let tempDirectory = reader.ReadString()
let autoSaveTime = reader.ReadInt32()
let showStatusBar = reader.ReadBoolean()
printfn $"Aspect ratio set to: {aspectRatio}"
printfn $"Temp directory is: {tempDirectory}"
printfn $"Auto save time set to: {autoSaveTime}"
printfn $"Show status bar: {showStatusBar}"
writeDefaultValues ()
displayValues ()
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
BinaryWriter() |
Initializes a new instance of the BinaryWriter class that writes to a stream. |
BinaryWriter(Stream) |
Initializes a new instance of the BinaryWriter class based on the specified stream and using UTF-8 encoding. |
BinaryWriter(Stream, Encoding) |
Initializes a new instance of the BinaryWriter class based on the specified stream and character encoding. |
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. |
Fields
Null |
Specifies a BinaryWriter with no backing store. |
OutStream |
Holds the underlying stream. |
Properties
BaseStream |
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. |
DisposeAsync() |
Asynchronously releases all resources used by the current instance of the BinaryWriter class. |
Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
Flush() |
Clears all buffers for the current writer and causes any buffered data to be written to the underlying device. |
GetHashCode() |
Serves as the default hash function. (Inherited from Object) |
GetType() |
Gets the Type of the current instance. (Inherited from Object) |
MemberwiseClone() |
Creates a shallow copy of the current Object. (Inherited from Object) |
Seek(Int32, SeekOrigin) |
Sets the position within the current stream. |
ToString() |
Returns a string that represents the current object. (Inherited from Object) |
Write(Boolean) |
Writes a one-byte |
Write(Byte) |
Writes an unsigned byte to the current stream and advances the stream position by one byte. |
Write(Byte[]) |
Writes a byte array to the underlying stream. |
Write(Byte[], Int32, Int32) |
Writes a region of a byte array to the current stream. |
Write(Char) |
Writes a Unicode character to the current stream and advances the current position of the stream in accordance with the |
Write(Char[]) |
Writes a character array to the current stream and advances the current position of the stream in accordance with the |
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 |
Write(Decimal) |
Writes a decimal value to the current stream and advances the stream position by sixteen bytes. |
Write(Double) |
Writes an eight-byte floating-point value to the current stream and advances the stream position by eight bytes. |
Write(Half) |
Writes a two-byte floating-point value to the current stream and advances the stream position by two bytes. |
Write(Int16) |
Writes a two-byte signed integer to the current stream and advances the stream position by two bytes. |
Write(Int32) |
Writes a four-byte signed integer to the current stream and advances the stream position by four bytes. |
Write(Int64) |
Writes an eight-byte signed integer to the current stream and advances the stream position by eight bytes. |
Write(ReadOnlySpan<Byte>) |
Writes a span of bytes to the current stream. |
Write(ReadOnlySpan<Char>) |
Writes a span of characters to the current stream, and advances the current position of the stream in accordance with the |
Write(SByte) |
Writes a signed byte to the current stream and advances the stream position by one byte. |
Write(Single) |
Writes a four-byte floating-point value to the current stream and advances the stream position by four 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(UInt16) |
Writes a two-byte unsigned integer to the current stream and advances the stream position by two bytes. |
Write(UInt32) |
Writes a four-byte unsigned integer to the current stream and advances the stream position by four bytes. |
Write(UInt64) |
Writes an eight-byte unsigned integer to the current stream and advances the stream position by eight bytes. |
Write7BitEncodedInt(Int32) |
Writes a 32-bit integer in a compressed format. |
Write7BitEncodedInt64(Int64) |
Writes out a number 7 bits at a time. |
Explicit Interface Implementations
IDisposable.Dispose() |
Releases the unmanaged resources used by the BinaryWriter and optionally releases the managed resources. |
Extension Methods
ConfigureAwait(IAsyncDisposable, Boolean) |
Configures how awaits on the tasks returned from an async disposable will be performed. |