MemoryStream.Read Methode

Definition

Überlädt

Read(Span<Byte>)

Liest eine Bytesequenz aus dem aktuellen Speicherdatenstrom und setzt die Position in diesem Speicherdatenstrom um die Anzahl der gelesenen Bytes nach vorn.

Read(Byte[], Int32, Int32)

Liest einen Byteblock aus dem aktuellen Stream und schreibt die Daten in einen Puffer.

Read(Span<Byte>)

Liest eine Bytesequenz aus dem aktuellen Speicherdatenstrom und setzt die Position in diesem Speicherdatenstrom um die Anzahl der gelesenen Bytes nach vorn.

public:
 override int Read(Span<System::Byte> destination);
public:
 override int Read(Span<System::Byte> buffer);
public override int Read (Span<byte> destination);
public override int Read (Span<byte> buffer);
override this.Read : Span<byte> -> int
override this.Read : Span<byte> -> int
Public Overrides Function Read (destination As Span(Of Byte)) As Integer
Public Overrides Function Read (buffer As Span(Of Byte)) As Integer

Parameter

destinationbuffer
Span<Byte>

Ein Bereich im Arbeitsspeicher. Nach Ausführung dieser Methode wurden die Inhalte dieser Spanne durch die aus der aktuellen Speicherdatenstrom-Quelle gelesenen Bytes ersetzt.

Gibt zurück

Int32

Die Gesamtanzahl der in den Puffer gelesenen Bytes. Dies kann weniger als die Anzahl der im Puffer zugeordneten Bytes sein, wenn diese Anzahl an Bytes derzeit nicht verfügbar ist, oder 0 (null), wenn das Ende des Speicherdatenstroms erreicht ist.

Gilt für

Read(Byte[], Int32, Int32)

Liest einen Byteblock aus dem aktuellen Stream und schreibt die Daten in einen Puffer.

public:
 override int Read(cli::array <System::Byte> ^ buffer, int offset, int count);
public override int Read (byte[] buffer, int offset, int count);
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer

Parameter

buffer
Byte[]

Enthält nach dem Beenden dieser Methode das angegebene Bytearray mit den Werten zwischen offset und (offset + count - 1), die durch aus dem aktuellen Stream gelesene Zeichen ersetzt wurden.

offset
Int32

Der nullbasierte Byteoffset im buffer, ab dem die Daten aus dem aktuellen Stream gespeichert werden.

count
Int32

Die maximale Anzahl der zu lesenden Bytes.

Gibt zurück

Int32

Die Gesamtanzahl der in den Puffer geschriebenen Bytes. Dies kann weniger als die Anzahl der angeforderten Bytes sein, wenn diese Anzahl an Bytes derzeit nicht verfügbar ist, oder null, wenn das Ende des Streams erreicht ist, bevor mindestens ein Byte gelesen wurde.

Ausnahmen

buffer ist null.

offset oder count ist ein negativer Wert.

offset subtrahiert von der Pufferlänge ist kleiner als count.

Der aktuelle Instanz des Streams ist geschlossen.

Beispiele

Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die MemoryStream-Klasse bereitgestellt wird.

// Read the first 20 bytes from the stream.
byteArray = gcnew array<Byte>(memStream->Length);
count = memStream->Read( byteArray, 0, 20 );
// Read the first 20 bytes from the stream.
byteArray = new byte[memStream.Length];
count = memStream.Read(byteArray, 0, 20);
' Read the first 20 bytes from the stream.
byteArray = _
    New Byte(CType(memStream.Length, Integer)){}
count = memStream.Read(byteArray, 0, 20)

Hinweise

Diese Methode überschreibt Read.

Der offset Parameter gibt den Offset des ersten Bytes, in buffer dem Daten aus dem aktuellen Stream geschrieben werden. Der count Parameter gibt die maximale Anzahl von Bytes an, die aus dem aktuellen Stream gelesen werden sollen. Der zurückgegebene Wert ist die tatsächliche Anzahl von Bytes-Lese- oder Nulldaten, wenn das Ende des Datenstroms erreicht ist.

Wenn der Lesevorgang erfolgreich ist, wird die aktuelle Position innerhalb des Datenstroms durch die Anzahl der Bytes gelesen. Wenn eine Ausnahme auftritt, bleibt die aktuelle Position im Datenstrom unverändert.

Die Read Methode gibt nur null zurück, wenn das Ende des Datenstroms erreicht ist. In allen anderen Fällen Read liest immer mindestens ein Byte aus dem Datenstrom vor dem Zurückgeben. Wenn bei einem Aufruf Readkeine Daten verfügbar sind, gibt die Read Methode null zurück (das Ende des Datenstroms wird automatisch erreicht). Eine Implementierung kann weniger Bytes zurückgeben als angefordert, auch wenn das Ende des Datenstroms nicht erreicht wurde.

Verwenden Sie BinaryReader zum Lesen von Grundtypdatentypen.

Achtung

Wenn das im Parameter angegebene Bytearray der zugrunde liegende Puffer ist, der von der buffer GetBuffer Methode zurückgegeben wird, werden die Arrayinhalte überschrieben, und keine Ausnahme wird ausgelöst.

Siehe auch

Gilt für