O'Reilly logo

C# in a Nutshell by Peter Drayton, Ted Neward, Ben Albahari

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Name

BinaryReader

Synopsis

This class allows you to read data from a Stream. When using a BinaryReader, the data represented by a Stream is regarded as a binary format, and bits are merely read from the stream and copied into the appropriate types. The methods prefixed with Read() allow you to grab data of a specific type from the front of the Stream and advance the current position. The next table shows how many bytes each of these methods reads in from a stream.

MethodBytes read
Read variable
ReadBoolean 1
ReadByte 1
ReadBytes variable
ReadChar 2
ReadChars variable
ReadDecimal 16
ReadDouble 8
ReadInt16 2
ReadInt32 4
ReadInt64 8
ReadSByte 1
ReadSingle 4
ReadString variable
ReadUInt16 2
ReadUInt32 4
ReadUInt64 8

ReadString() uses the current encoding of the BinaryReader , which can be set when you call the constructor. Strings are prefixed with their length. PeekChar() allows you to look at the first character of a stream (a System.Char, which is two bytes) without advancing the position of the Stream. Because a binary reader may hold on to resources that should be freed when not needed, the BinaryReader must be closed using Close() or by wrapping it in a using block (which calls the protected Dispose() method to do the cleanup at the end of the using block).

public class BinaryReader : IDisposable {
// Public Constructors
   public method BinaryReader(Stream input);  
   public method BinaryReader(Stream input, 
        System.Text.Encoding encoding);  
// Public Instance Properties ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required