Skip to main content This browser is no longer supported. Show
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. BinaryWriter Class
DefinitionWrites primitive types in binary to a stream and supports writing strings in a specific encoding. In this articlepublic ref class BinaryWriter : IDisposablepublic ref class BinaryWriter : IAsyncDisposable, IDisposablepublic class BinaryWriter : IDisposablepublic class BinaryWriter : IAsyncDisposable, IDisposable[System.Serializable] public class BinaryWriter : IDisposable[System.Serializable] [System.Runtime.InteropServices.ComVisible(true)] public class BinaryWriter : IDisposabletype BinaryWriter = class interface IDisposabletype BinaryWriter = class interface IAsyncDisposable interface IDisposable[<System.Serializable>] type BinaryWriter = class interface IDisposable[<System.Serializable>] [<System.Runtime.InteropServices.ComVisible(true)>] type BinaryWriter = class interface IDisposablePublic Class BinaryWriter Implements IDisposablePublic Class BinaryWriter Implements IAsyncDisposable, IDisposableInheritanceAttributesImplementsExamplesThe 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 ModuleRemarksThe 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. ConstructorsFieldsPropertiesMethods
Explicit Interface ImplementationsExtension MethodsApplies toSee also
Which class is used for input of binary data from a file?The BinaryReader class is used to read binary data from a file. A BinaryReader object is created by passing a FileStream object to its constructor. The following table describes commonly used methods of the BinaryReader class.
When you write a method that throws a checked exception you must?If some code within a method throws a checked exception, then the method must either handle the exception or it must specify the exception using the throws keyword. In checked exception, there are two types: fully checked and partially checked exceptions.
When Deserializing an object using the readObject method you must cast the return value to the desired class type?When deserializing an object using the readObject method, you must cast the return value to the desired class type. When the code in a try block may throw more than one type of exception, you need to write a catch clause for each type of exception that could potentially be thrown.
When catching multiple exceptions that are related to one another?When catching multiple exceptions that are related to one another through inheritance you should handle the more general exception classes before the more specialized exception classes.
|