BinaryReader.Read Method (Byte[], Int32, Int32)

Reads count bytes from the stream with index as the starting point in the byte array.

Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)

'Declaration
Public Overridable Function Read ( _
	buffer As Byte(), _
	index As Integer, _
	count As Integer _
) As Integer
'Usage
Dim instance As BinaryReader
Dim buffer As Byte()
Dim index As Integer
Dim count As Integer
Dim returnValue As Integer

returnValue = instance.Read(buffer, index, count)
public int Read (
	byte[] buffer, 
	int index, 
	int count
)
public function Read (
	buffer : byte[], 
	index : int, 
	count : int
) : int
Not applicable.

Parameters

buffer

The buffer to read data into.

index

The starting point in the buffer at which to begin reading into the buffer.

count

The number of characters to read.

Return Value

The number of characters read into buffer. This might be less than the number of bytes requested if that many bytes are not available, or it might be zero if the end of the stream is reached.

Exception typeCondition

ArgumentException

The buffer length minus index is less than count.

ArgumentNullException

buffer is a null reference (Nothing in Visual Basic).

ArgumentOutOfRangeException

index or count is negative.

ObjectDisposedException

The stream is closed.

IOException

An I/O error occurs.

BinaryReader does not restore the file position after an unsuccessful read.

For a list of common I/O tasks, see Common I/O Tasks.

The following example shows how to write binary data using memory as a backing store. It then displays a message to the console that indicates whether the data was written correctly.

Imports System
Imports System.IO

Public Class BinaryRW

    Shared Sub Main()
    
        Const upperBound As Integer = 1000

        ' Create random data to write to the stream.
        Dim dataArray(upperBound) As Byte
        Dim randomGenerator As New Random
        randomGenerator.NextBytes(dataArray)

        Dim binWriter As New BinaryWriter(New MemoryStream())

        ' Write the data to the stream.
        Console.WriteLine("Writing the data.")
        binWriter.Write(dataArray, 0, dataArray.Length)

        ' Create the reader using the stream from the writer.
        Dim binReader As New BinaryReader(binWriter.BaseStream)

        ' Set Position to the beginning of the stream.
        binReader.BaseStream.Position = 0

        ' Read and verify the data.
        Dim verifyArray(upperBound) As Byte
        If binReader.Read(verifyArray, 0, dataArray.Length) _
            <> dataArray.Length Then

            Console.WriteLine("Error writing the data.")
            Return
        End If
        For i As Integer =  0 To upperBound
            If verifyArray(i) <> dataArray(i) Then
                Console.WriteLine("Error writing the data.")
                Return
            End If
        Next i
        Console.WriteLine("The data was written and verified.")
    
    End Sub
End Class

import System.*;
import System.IO.*;

class BinaryRW
{   
    public static void main(String[] args)
    {
        final int arrayLength = 1000;

        // Create random data to write to the stream.
        ubyte dataArray[] = new ubyte[arrayLength];
        new Random().NextBytes(dataArray);

        BinaryWriter binWriter = new BinaryWriter(new MemoryStream());

        // Write the data to the stream.
        Console.WriteLine("Writing the data.");
        binWriter.Write(dataArray, 0, arrayLength);

        // Create the reader using the stream from the writer.
        BinaryReader binReader = new BinaryReader(binWriter.get_BaseStream());

        // Set Position to the beginning of the stream.
        binReader.get_BaseStream().set_Position(0);

        // Read and verify the data.
        ubyte verifyArray[] = new ubyte[arrayLength];
        if ( binReader.Read(verifyArray, 0, arrayLength) != arrayLength ) {
            Console.WriteLine("Error writing the data.");
            return;
        }
        for(int i=0;i < arrayLength;i++) {
            if ( verifyArray[i] != dataArray[i] ) {
                Console.WriteLine("Error writing the data.");
                return;
            }
        } 
        Console.WriteLine("The data was written and verified.");
    } //main
} //BinaryRW

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0

XNA Framework

Supported in: 1.0

Community Additions

ADD
Show: