Freigeben über


MemoryStream.Read-Methode

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

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

Syntax

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

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

Parameter

  • buffer
    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
    Der Byteoffset im buffer, ab dem gelesen werden soll.
  • count
    Die maximale Anzahl der zu lesenden Bytes.

Rückgabewert

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

Ausnahmetyp Bedingung

ArgumentNullException

buffer ist NULL (Nothing in Visual Basic).

ArgumentOutOfRangeException

offset oder count ist negativ.

ArgumentException

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

ObjectDisposedException

Der aktuelle Instanz des Streams ist geschlossen.

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.

Diese Methode überschreibt Read.

Der offset-Parameter gibt den Offset des ersten Bytes in buffer an, in den die Daten aus dem aktuellen Stream geschrieben werden. Der count-Parameter gibt die maximale Anzahl von Bytes an, die aus dem aktuellen Stream gelesen werden. Der zurückgegebene Wert ist die Anzahl der tatsächlich gelesenen Bytes bzw. 0, wenn das Streamende erreicht ist.

Wenn der Lesevorgang erfolgreich ist, wird die aktuelle Position im Stream um die Anzahl der gelesenen Bytes erhöht. Wenn eine Ausnahme eintritt, wird die aktuelle Position innerhalb des Streams nicht geändert.

Die Read-Methode gibt nur dann 0 zurück, wenn das Streamende 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 null 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.

Warnung

Wenn das im buffer-Parameter angegebene Bytearray den von der GetBuffer-Methode zurückgegebenen zugrunde liegenden Puffer darstellt, wird der Inhalt des Arrays überschrieben und keine Ausnahme ausgelöst.

Beispiel

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

' Read the first 20 bytes from the stream.
byteArray = _
    New Byte(CType(memStream.Length, Integer)){}
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 = gcnew array<Byte>(memStream->Length);
count = memStream->Read( byteArray, 0, 20 );
// Read the first 20 bytes from the stream.
byteArray = new ubyte[(int)memStream.get_Length()];
count = memStream.Read(byteArray, 0, 20);

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, 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

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

MemoryStream-Klasse
MemoryStream-Member
System.IO-Namespace

Weitere Ressourcen

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