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.
|
Read
|
variable
|
ReadInt32
|
4
|
ReadBoolean
|
1
|
ReadInt64
|
8
|
ReadByte
|
1
|
ReadSByte
|
1
|
ReadBytes
|
variable
|
ReadSingle
|
4
|
ReadChar
|
2
|
ReadString
|
variable
|
ReadChars
|
variable
|
ReadUInt16
|
2
|
ReadDecimal
|
16
|
ReadUInt32
|
4
|
ReadDouble
|
8
|
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 BinaryReader(Stream input);
public BinaryReader(Stream input,
System.Text.Encoding encoding);
// Public Instance Properties
public virtual Stream BaseStream{get; }
// Public Instance Methods
public virtual void Close( );
public virtual int PeekChar( );
public virtual int Read( );
public virtual int Read(byte[ ] buffer, int index, int count);
public virtual int Read(char[ ] buffer, int index, int count);
public virtual bool ReadBoolean( );
public virtual byte ReadByte( );
public virtual byte[ ] ReadBytes(int count);
public virtual char ReadChar( );
public virtual char[ ] ReadChars(int count);
public virtual decimal ReadDecimal( );
public virtual double ReadDouble( );
public virtual short ReadInt16( );
public virtual int ReadInt32( );
public virtual long ReadInt64( );
public virtual sbyte ReadSByte( );
public virtual float ReadSingle( );
public virtual string ReadString( );
public virtual ushort ReadUInt16( );
public virtual uint ReadUInt32( );
public virtual ulong ReadUInt64( );
// Protected Instance Methods
protected virtual void Dispose(bool disposing);
protected virtual void FillBuffer(int numBytes);
protected int Read7BitEncodedInt( );
}