Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Stream.Read-Methode

Liest beim Überschreiben in einer abgeleiteten Klasse eine Folge von Bytes aus dem aktuellen Stream und erhöht die Position im Stream um die Anzahl der gelesenen Bytes.

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

public abstract int Read(
	byte[] buffer,
	int offset,
	int count
)

Parameter

buffer
Typ: System.Byte[]
Ein Bytearray. Nach dem Beenden dieser Methode enthält der Puffer das angegebene Bytearray mit den Werten zwischen offset und (offset + count - 1), die durch aus der aktuellen Quelle gelesene Bytes ersetzt wurden.
offset
Typ: System.Int32
Der nullbasierte Byteoffset im buffer, ab dem die aus dem aktuellen Stream gelesenen Daten gespeichert werden.
count
Typ: System.Int32
Die maximale Anzahl an Bytes, die aus dem aktuellen Stream gelesen werden sollen.

Rückgabewert

Typ: System.Int32
Die Gesamtanzahl der in den Puffer gelesenen Bytes. Dies kann weniger als die Anzahl der angeforderten Bytes sein, wenn diese Anzahl an Bytes derzeit nicht verfügbar ist, oder 0, wenn das Ende des Streams erreicht ist.

AusnahmeBedingung
ArgumentException

Die Summe aus offset und count ist größer als die Pufferlänge.

ArgumentNullException

buffer ist null.

ArgumentOutOfRangeException

offset oder count ist negativ.

IOException

E/A-Fehler.

NotSupportedException

Lesevorgänge werden vom Stream nicht unterstützt.

ObjectDisposedException

Es wurden Methoden aufgerufen, nachdem der Stream geschlossen wurde.

Verwenden Sie die CanRead-Eigenschaft, um zu bestimmen, ob die aktuelle Instanz Lesevorgänge unterstützt. Verwenden Sie die ReadAsync-Methode, um aus dem aktuellen Stream asynchron zu lesen.

Die Implementierungen dieser Methode lesen maximal count Bytes aus dem aktuellen Stream und speichern diese beginnend bei offset im buffer. Die aktuelle Position im Stream wird um die Anzahl der gelesenen Bytes nach vorne verschoben. Wenn eine Ausnahme auftritt, wird die Position im Stream jedoch nicht geändert. Die Implementierungen geben die Anzahl der gelesenen Bytes zurück. Falls keine Daten verfügbar sind, blockiert die Implementierung solange, bis mindestens ein Byte mit Daten gelesen werden kann. Read gibt 0 zurück, wenn keine weiteren Daten im Stream und gibt nicht mehr erwartet wird (z ein geschlossener Socket oder Dateiende). 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.

Im folgenden Beispiel wird veranschaulicht, wie mithilfe von Read ein Datenblock gelesen wird.


using System;
using System.IO;

public class Block
{
    public static void Main()
    {
        Stream s = new MemoryStream();
        for (int i = 0; i < 122; i++)
        {
            s.WriteByte((byte)i);
        }
        s.Position = 0;

        // Now read s into a byte buffer with a little padding.
        byte[] bytes = new byte[s.Length + 10];
        int numBytesToRead = (int)s.Length;
        int numBytesRead = 0;
        do
        {
            // Read may return anything from 0 to 10.
            int n = s.Read(bytes, numBytesRead, 10);
            numBytesRead += n;
            numBytesToRead -= n;
        } while (numBytesToRead > 0);
        s.Close();
        // numBytesToRead should be 0 now, and numBytesRead should
        // equal 100.
        Console.WriteLine("number of bytes read: {0:d}", numBytesRead);
    }
}


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

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

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft