Sdílet prostřednictvím


MemoryStream.Read Metoda

Definice

Přetížení

Read(Span<Byte>)

Načte posloupnost bajtů z aktuálního datového proudu paměti a posune pozici v rámci datového proudu paměti o počet přečtených bajtů.

Read(Byte[], Int32, Int32)

Načte blok bajtů z aktuálního datového proudu a zapíše data do vyrovnávací paměti.

Read(Span<Byte>)

Zdroj:
MemoryStream.cs
Zdroj:
MemoryStream.cs
Zdroj:
MemoryStream.cs

Načte posloupnost bajtů z aktuálního datového proudu paměti a posune pozici v rámci datového proudu paměti o počet přečtených bajtů.

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

Parametry

destinationbuffer
Span<Byte>

Oblast paměti. Když se tato metoda vrátí, obsah tohoto rozsahu jsou nahrazeny bajty načtenými z aktuálního zdroje datového proudu paměti.

Návraty

Celkový počet bajtů načtených do vyrovnávací paměti. To může být menší než počet bajtů přidělených ve vyrovnávací paměti, pokud tento počet bajtů není aktuálně k dispozici, nebo nula (0), pokud bylo dosaženo konce datového proudu paměti.

Platí pro

Read(Byte[], Int32, Int32)

Zdroj:
MemoryStream.cs
Zdroj:
MemoryStream.cs
Zdroj:
MemoryStream.cs

Načte blok bajtů z aktuálního datového proudu a zapíše data do vyrovnávací paměti.

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

Parametry

buffer
Byte[]

Když tato metoda vrátí hodnotu, obsahuje zadané pole bajtů s hodnotami mezi offset a (offset + count - 1) nahrazenými znaky načtenými z aktuálního datového proudu.

offset
Int32

Posun od nuly bajtů, při buffer kterém se mají začít ukládat data z aktuálního datového proudu.

count
Int32

Maximální počet bajtů ke čtení.

Návraty

Celkový počet bajtů zapsaných do vyrovnávací paměti. To může být menší než požadovaný počet bajtů, pokud tento počet bajtů není aktuálně k dispozici, nebo nula, pokud je dosaženo konce datového proudu před načtením jakýchkoli bajtů.

Výjimky

buffer je null.

offset nebo count je negativní.

offset Odečtení od délky vyrovnávací paměti je menší než count.

Aktuální instance datového proudu je uzavřena.

Příklady

Tento příklad kódu je součástí většího příkladu MemoryStream pro třídu .

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

Poznámky

Tato metoda přepíše Read.

Parametr offset poskytuje posun prvního bajtu, do buffer kterého se zapisují data z aktuálního datového proudu. Parametr count poskytuje maximální počet bajtů, které se mají načíst z aktuálního datového proudu. Vrácená hodnota je skutečný počet přečtených bajtů, nebo nula, pokud je dosaženo konce datového proudu.

Pokud je operace čtení úspěšná, aktuální pozice v datovém proudu se posune o počet přečtených bajtů. Pokud dojde k výjimce, aktuální pozice v rámci datového proudu zůstane beze změny.

Metoda Read vrátí nulu pouze v případě, že je dosaženo konce datového proudu. Ve všech ostatních případech Read vždy před vrácením přečte z datového proudu alespoň jeden bajt. Podle definice, pokud nejsou z datového proudu k dispozici žádná data při volání , ReadRead vrátí metoda nulu (konec datového proudu je dosažen automaticky). Implementace může vrátit méně bajtů, než požaduje, i když nebylo dosaženo konce datového proudu.

Slouží BinaryReader ke čtení primitivních datových typů.

Upozornění

Pokud je pole bajtů zadané v parametru buffer podkladovou vyrovnávací pamětí vrácenou metodou GetBuffer , obsah pole se přepíše a nevyvolá se žádná výjimka.

Viz také

Platí pro