BufferedStream.Read-Methode

Kopiert Bytes aus dem aktuellen gepufferten Stream in ein Array.

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

Syntax

'Declaration
Public Overrides Function Read ( _
    <InAttribute> <OutAttribute> array As Byte(), _
    offset As Integer, _
    count As Integer _
) As Integer
'Usage
Dim instance As BufferedStream
Dim array As Byte()
Dim offset As Integer
Dim count As Integer
Dim returnValue As Integer

returnValue = instance.Read(array, offset, count)
public override int Read (
    [InAttribute] [OutAttribute] byte[] array,
    int offset,
    int count
)
public:
virtual int Read (
    [InAttribute] [OutAttribute] array<unsigned char>^ array, 
    int offset, 
    int count
) override
public int Read (
    /** @attribute InAttribute() */ /** @attribute OutAttribute() */ byte[] array, 
    int offset, 
    int count
)
public override function Read (
    array : byte[], 
    offset : int, 
    count : int
) : int

Parameter

  • array
    Der Puffer, in den Bytes kopiert werden sollen.
  • offset
    Der Byteoffset im Puffer, ab dem mit dem Lesen von Bytes begonnen werden soll.
  • count
    Die Anzahl der zu lesenden Bytes.

Rückgabewert

Die Anzahl der insgesamt in das array gelesenen Bytes. Diese kann kleiner sein als die Anzahl der angeforderten Bytes, wenn derzeit nicht entsprechend viele Bytes verfügbar sind, oder 0, wenn das Ende des Streams erreicht ist, bevor Daten gelesen werden können.

Ausnahmen

Ausnahmetyp Bedingung

ArgumentException

Die Länge von array minus offset ist kleiner als count.

ArgumentNullException

array ist NULL (Nothing in Visual Basic).

ArgumentOutOfRangeException

offset oder count ist negativ.

IOException

Der Stream ist nicht geöffnet oder ist NULL (Nothing in Visual Basic).

NotSupportedException

Der Stream unterstützt keine Lesevorgänge.

ObjectDisposedException

Es wurden Methoden aufgerufen, nachdem der Stream geschlossen wurde.

Hinweise

Ein Beispiel für das Erstellen einer Datei und das Schreiben von Text in eine Datei finden Sie unter Gewusst wie: Schreiben von Text in eine Datei. Ein Beispiel für das Lesen von Text aus einer Datei finden Sie unter Gewusst wie: Lesen aus einer Textdatei. Ein Beispiel für das Lesen aus einer Binärdatei und das Schreiben in eine Binärdatei finden Sie unter Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei.

Die Read-Methode gibt nur dann 0 zurück, wenn das Ende des Streams erreicht ist. In allen anderen Fällen liest Read vor der Rückgabe immer mindestens ein Byte aus dem Stream. Per Definition wird für den Fall, dass bei einem Aufruf von Read keine Daten verfügbar sind, von der Read-Methode immer 0 zurückgegeben (das Ende des Streams wird automatisch erreicht). Eine Implementierung kann weniger Bytes als angefordert zurückgeben, auch wenn noch nicht das Ende des Streams erreicht ist.

Verwenden Sie BinaryReader für das Lesen primitiver Datentypen.

Beispiel

Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels für die BufferedStream-Klasse.

' Receive data using the BufferedStream.
Console.WriteLine("Receiving data using BufferedStream.")
bytesReceived = 0
startTime = DateTime.Now
While bytesReceived < numberOfLoops * receivedData.Length
    bytesReceived += bufStream.Read( _
        receivedData, 0, receivedData.Length)
End While
bufferedTime = DateTime.Now.Subtract(startTime).TotalSeconds
Console.WriteLine("{0} bytes received in {1} " & _
    "seconds." & vbCrLf, _
    bytesReceived.ToString(), _
    bufferedTime.ToString("F1"))
// Receive data using the BufferedStream.
Console.WriteLine("Receiving data using BufferedStream.");
bytesReceived = 0;
startTime = DateTime.Now;
while(bytesReceived < numberOfLoops * receivedData.Length)
{
    bytesReceived += bufStream.Read(
        receivedData, 0, receivedData.Length);
}
bufferedTime = (DateTime.Now - startTime).TotalSeconds;
Console.WriteLine("{0} bytes received in {1} seconds.\n",
    bytesReceived.ToString(), 
    bufferedTime.ToString("F1"));
// Receive data using the BufferedStream.
Console::WriteLine(  "Receiving data using BufferedStream." );
bytesReceived = 0;
startTime = DateTime::Now;
while ( bytesReceived < numberOfLoops * receivedData->Length )
{
   bytesReceived += bufStream->Read( receivedData, 0, receivedData->Length );
}

bufferedTime = (DateTime::Now - startTime).TotalSeconds;
Console::WriteLine( "{0} bytes received in {1} seconds.\n", bytesReceived.ToString(), bufferedTime.ToString(  "F1" ) );
// Receive data using the BufferedStream.
Console.WriteLine("Receiving data using BufferedStream.");
bytesReceived = 0;
startTime = DateTime.get_Now();
while((bytesReceived < numberOfLoops * receivedData.length)) {
    bytesReceived += bufStream.Read(receivedData,0,receivedData.length);
}
bufferedTime =
    ((DateTime.get_Now()).Subtract(startTime)).get_TotalSeconds();
Console.WriteLine("{0} bytes received in {1} seconds.\n",
    (new Integer(bytesReceived)).ToString(),
    ((System.Double) bufferedTime).ToString("F1"));

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

BufferedStream-Klasse
BufferedStream-Member
System.IO-Namespace
BlockCopy
CanRead
Write

Weitere Ressourcen

Datei- und Stream-E/A
Gewusst wie: Lesen aus einer Textdatei
Gewusst wie: Schreiben von Text in eine Datei