BinaryReader Class
.NET Framework 4
Reads primitive data types as binary values in a specific encoding.
Namespace:
System.IO
Assembly: mscorlib (in mscorlib.dll)
The BinaryReader type exposes the following members.
| Name | Description | |
|---|---|---|
![]() ![]() ![]() | BinaryReader(Stream) | Initializes a new instance of the BinaryReader class based on the supplied stream and using UTF8Encoding. |
![]() ![]() ![]() | BinaryReader(Stream, Encoding) | Initializes a new instance of the BinaryReader class based on the supplied stream and a specific character encoding. |
| Name | Description | |
|---|---|---|
![]() ![]() | 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.) |
![]() ![]() ![]() | FillBuffer | Fills the internal buffer with the specified number of bytes read from the stream. |
![]() ![]() ![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() ![]() ![]() | GetHashCode | Serves as a hash function for a particular type. (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.) |
![]() ![]() ![]() | PeekChar | 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 Encoding used and the specific character being read from the stream. |
![]() ![]() ![]() | 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. |
![]() ![]() ![]() | Read7BitEncodedInt | Reads in a 32-bit integer in compressed format. |
![]() ![]() ![]() | ReadBoolean | Reads a Boolean value from the current stream and advances the current position of the stream by one byte. |
![]() ![]() ![]() | ReadByte | Reads the next byte from the current stream and advances the current position of the stream by one byte. |
![]() ![]() ![]() | 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. |
![]() ![]() ![]() | 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. |
![]() ![]() ![]() | 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. |
![]() ![]() | ReadDecimal | Reads a decimal value from the current stream and advances the current position of the stream by sixteen bytes. |
![]() ![]() ![]() | ReadDouble | Reads an 8-byte floating point value from the current stream and advances the current position of the stream by eight bytes. |
![]() ![]() ![]() | ReadInt16 | Reads a 2-byte signed integer from the current stream and advances the current position of the stream by two bytes. |
![]() ![]() ![]() | ReadInt32 | Reads a 4-byte signed integer from the current stream and advances the current position of the stream by four bytes. |
![]() ![]() ![]() | ReadInt64 | Reads an 8-byte signed integer from the current stream and advances the current position of the stream by eight bytes. |
![]() ![]() ![]() | ReadSByte | Reads a signed byte from this stream and advances the current position of the stream by one byte. |
![]() ![]() ![]() | ReadSingle | Reads a 4-byte floating point value from the current stream and advances the current position of the stream by four bytes. |
![]() ![]() ![]() | ReadString | Reads a string from the current stream. The string is prefixed with the length, encoded as an integer seven bits at a time. |
![]() ![]() ![]() | 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. |
![]() ![]() ![]() | ReadUInt32 | Reads a 4-byte unsigned integer from the current stream and advances the position of the stream by four bytes. |
![]() ![]() ![]() | ReadUInt64 | Reads an 8-byte unsigned integer from the current stream and advances the position of the stream by eight bytes. |
![]() ![]() ![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
For a list of common I/O tasks, see Common I/O Tasks.
The following code example demonstrates how to store and retrieve application settings in a file.
using System; using System.IO; using System.Security.Permissions; // Store and retrieve application settings. class AppSettings { const string fileName = "AppSettings#@@#.dat"; float aspectRatio; string lookupDir; int autoSaveTime; bool showStatusBar; public AppSettings() { // Create default application settings. aspectRatio = 1.3333F; lookupDir = @"C:\AppDirectory"; autoSaveTime = 30; showStatusBar = false; if(File.Exists(fileName)) { BinaryReader binReader = new BinaryReader(File.Open(fileName, FileMode.Open)); try { // If the file is not empty, // read the application settings. // First read 4 bytes into a buffer to // determine if the file is empty. byte[] testArray = new byte[3]; int count = binReader.Read(testArray, 0, 3); if (count != 0) { // Reset the position in the stream to zero. binReader.BaseStream.Seek(0, SeekOrigin.Begin); aspectRatio = binReader.ReadSingle(); lookupDir = binReader.ReadString(); autoSaveTime = binReader.ReadInt32(); showStatusBar = binReader.ReadBoolean(); } } // If the end of the stream is reached before reading // the four data values, ignore the error and use the // default settings for the remaining values. catch(EndOfStreamException e) { Console.WriteLine("{0} caught and ignored. " + "Using default values.", e.GetType().Name); } finally { binReader.Close(); } } } // Create a file and store the application settings. public void Close() { using(BinaryWriter binWriter = new BinaryWriter(File.Open(fileName, FileMode.Create))) { binWriter.Write(aspectRatio); binWriter.Write(lookupDir); binWriter.Write(autoSaveTime); binWriter.Write(showStatusBar); } } public float AspectRatio { get{ return aspectRatio; } set{ aspectRatio = value; } } public string LookupDir { get{ return lookupDir; } set{ lookupDir = value; } } public int AutoSaveTime { get{ return autoSaveTime; } set{ autoSaveTime = value; } } public bool ShowStatusBar { get{ return showStatusBar; } set{ showStatusBar = value; } } } class Test { static void Main() { // Load application settings. AppSettings appSettings = new AppSettings(); Console.WriteLine("App settings:\nAspect Ratio: {0}, " + "Lookup directory: {1},\nAuto save time: {2} minutes, " + "Show status bar: {3}\n", new Object[4]{appSettings.AspectRatio.ToString(), appSettings.LookupDir, appSettings.AutoSaveTime.ToString(), appSettings.ShowStatusBar.ToString()}); // Change the settings. appSettings.AspectRatio = 1.250F; appSettings.LookupDir = @"C:\Temp"; appSettings.AutoSaveTime = 10; appSettings.ShowStatusBar = true; // Save the new settings. appSettings.Close(); } }
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

