BinaryReader Class
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.
Reads primitive data types as binary values in a specific encoding.
public ref class BinaryReader : IDisposable
public class BinaryReader : IDisposable
[System.Runtime.InteropServices.ComVisible(true)]
public class BinaryReader : IDisposable
type BinaryReader = class
interface IDisposable
[<System.Runtime.InteropServices.ComVisible(true)>]
type BinaryReader = class
interface IDisposable
Public Class BinaryReader
Implements IDisposable
- Inheritance
-
BinaryReader
- Attributes
- Implements
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
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.
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.
Binary |
Initializes a new instance of the BinaryReader class based on the specified stream and character encoding, and optionally leaves the stream open. |
Binary |
Initializes a new instance of the BinaryReader class based on the specified stream and character encoding. |
Binary |
Initializes a new instance of the BinaryReader class based on the specified stream and using UTF-8 encoding. |
Base |
Exposes access to the underlying stream of the BinaryReader. |
Close() |
Closes the current reader and the underlying stream. |
Dispose() |
Releases all resources used by the current instance of the BinaryReader class. |
Dispose(Boolean) |
Releases the unmanaged resources used by the BinaryReader class and optionally releases the managed resources. |
Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
Fill |
Fills the internal buffer with the specified number of bytes read from the stream. |
Get |
Serves as the default hash function. (Inherited from Object) |
Get |
Gets the Type of the current instance. (Inherited from Object) |
Memberwise |
Creates a shallow copy of the current Object. (Inherited from Object) |
Peek |
Returns the next available character and does not advance the byte or character position. |
Read() |
Reads characters from the underlying stream and advances the current position of the stream in accordance with the |
Read(Byte[], Int32, Int32) |
Reads the specified number of bytes from the stream, starting from a specified point in the byte array. |
Read(Char[], Int32, Int32) |
Reads the specified number of characters from the stream, starting from a specified point in the character array. |
Read(Span<Byte>) |
Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. |
Read(Span<Char>) |
Reads, from the current stream, the same number of characters as the length of the provided buffer, writes them in the provided buffer, and advances the current position in accordance with the |
Read7Bit |
Reads in a 32-bit integer in compressed format. |
Read7Bit |
Reads a number 7 bits at a time. |
Read |
Reads a |
Read |
Reads the next byte from the current stream and advances the current position of the stream by one byte. |
Read |
Reads the specified number of bytes from the current stream into a byte array and advances the current position by that number of bytes. |
Read |
Reads the next character from the current stream and advances the current position of the stream in accordance with the |
Read |
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 |
Read |
Reads a decimal value from the current stream and advances the current position of the stream by sixteen bytes. |
Read |
Reads an 8-byte floating point value from the current stream and advances the current position of the stream by eight bytes. |
Read |
Reads a 2-byte floating point value from the current stream and advances the current position of the stream by two bytes. |
Read |
Reads a 2-byte signed integer from the current stream and advances the current position of the stream by two bytes. |
Read |
Reads a 4-byte signed integer from the current stream and advances the current position of the stream by four bytes. |
Read |
Reads an 8-byte signed integer from the current stream and advances the current position of the stream by eight bytes. |
Read |
Reads a signed byte from this stream and advances the current position of the stream by one byte. |
Read |
Reads a 4-byte floating point value from the current stream and advances the current position of the stream by four bytes. |
Read |
Reads a string from the current stream. The string is prefixed with the length, encoded as an integer seven bits at a time. |
Read |
Reads a 2-byte unsigned integer from the current stream using little-endian encoding and advances the position of the stream by two bytes. |
Read |
Reads a 4-byte unsigned integer from the current stream and advances the position of the stream by four bytes. |
Read |
Reads an 8-byte unsigned integer from the current stream and advances the position of the stream by eight bytes. |
To |
Returns a string that represents the current object. (Inherited from Object) |
IDisposable. |
This API supports the product infrastructure and is not intended to be used directly from your code. Releases the BaseStream unless configured otherwise by BinaryReader(Stream, Encoding, Boolean). |
Product | Versions |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1 |
UWP | 10.0 |
.NET feedback
.NET is an open source project. Select a link to provide feedback: