Freigeben über


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>)

Quelle:
MemoryStream.cs
Quelle:
MemoryStream.cs
Quelle:
MemoryStream.cs

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

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)

Quelle:
MemoryStream.cs
Quelle:
MemoryStream.cs
Quelle:
MemoryStream.cs

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

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 Byte an, in buffer das 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 gelesener Bytes oder null, wenn das Ende des Datenstroms erreicht ist.

Wenn der Lesevorgang erfolgreich ist, wird die aktuelle Position im Stream um die Anzahl der gelesenen Bytes erhöht. Wenn eine Ausnahme auftritt, bleibt die aktuelle Position im Stream unverändert.

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

Verwenden Sie zum BinaryReader Lesen primitiver Datentypen.

Achtung

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

Weitere Informationen

Gilt für: