MemoryStream.Read Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ü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
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)
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 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 Read
keine 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
- Datei- und Stream-E/A
- Vorgehensweise: Lesen von Text aus einer Datei
- Vorgehensweise: Schreiben von Text in eine Datei