MemoryStream.Read Metódus

Definíció

Túlterhelések

Name Description
Read(Span<Byte>)

Beolvassa a bájtok sorozatát az aktuális memóriastreamből, és az olvasási bájtok számával előrelépteti a memóriafolyamon belüli pozíciót.

Read(Byte[], Int32, Int32)

Beolvassa az aktuális adatfolyam bájtblokkját, és pufferbe írja az adatokat.

Read(Span<Byte>)

Forrás:
MemoryStream.cs
Forrás:
MemoryStream.cs
Forrás:
MemoryStream.cs
Forrás:
MemoryStream.cs
Forrás:
MemoryStream.cs

Beolvassa a bájtok sorozatát az aktuális memóriastreamből, és az olvasási bájtok számával előrelépteti a memóriafolyamon belüli pozíciót.

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

Paraméterek

destinationbuffer
Span<Byte>

A memória egy régiója. Amikor ez a metódus visszatér, a rendszer ennek a tartománynak a tartalmát lecseréli az aktuális memóriafolyam-forrásból beolvasott bájtokra.

Válaszok

A pufferbe beolvasott bájtok teljes száma. Ez kisebb lehet, mint a pufferben lefoglalt bájtok száma, ha a sok bájt jelenleg nem érhető el, vagy nulla (0), ha elérte a memóriastream végét.

A következőre érvényes:

Read(Byte[], Int32, Int32)

Forrás:
MemoryStream.cs
Forrás:
MemoryStream.cs
Forrás:
MemoryStream.cs
Forrás:
MemoryStream.cs
Forrás:
MemoryStream.cs

Beolvassa az aktuális adatfolyam bájtblokkját, és pufferbe írja az adatokat.

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

Paraméterek

buffer
Byte[]

A metódus visszatérésekor a megadott bájttömb offset az aktuális streamből beolvasott karakterek között és ( - 1) között és (offset + count - 1) között és ( - 1) helyett jelenik meg.

offset
Int32

A nullaalapú bájteltolás buffer , amelynél megkezdheti az adatok tárolását az aktuális adatfolyamból.

count
Int32

Az elolvasandó bájtok maximális száma.

Válaszok

A pufferbe írt bájtok teljes száma. Ez kisebb lehet, mint a kért bájtok száma, ha a bájtok száma jelenleg nem érhető el, vagy nulla, ha a stream vége el van érve a bájtok olvasása előtt.

Kivételek

buffer az null.

offset vagy count negatív.

offset A puffer hosszából kivont rész kisebb, mint count.

Az aktuális streampéldány bezárult.

Példák

Ez a példakód egy nagyobb, az MemoryStream osztályhoz tartozó példa része.

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

Megjegyzések

Ez a metódus felülbírálja a parancsot Read.

A offset paraméter az aktuális adatfolyamból származó adatok első bájtjának buffer eltolását adja meg. A count paraméter az aktuális adatfolyamból beolvasandó bájtok maximális számát adja meg. A visszaadott érték az olvasási bájtok tényleges száma, vagy nulla, ha a stream vége el van érve.

Ha az olvasási művelet sikeres, a stream aktuális pozíciója az olvasási bájtok számával halad előre. Kivétel esetén a streamen belüli aktuális pozíció változatlan marad.

A Read metódus csak akkor ad vissza nullát, ha eléri a stream végét. Minden más esetben Read mindig beolvassa legalább egy bájtot a streamből, mielőtt visszatér. Definíció szerint, ha a streamből nem áll rendelkezésre adat a híváskor Read, a Read metódus nullát ad vissza (a stream vége automatikusan elérhetővé válik). Az implementációk a kértnél kevesebb bájtot adnak vissza, még akkor is, ha a stream vége még nem ért el.

Primitív adattípusok olvasására használható BinaryReader .

Figyelmeztetés

Ha a buffer paraméterben megadott bájttömb a metódus által GetBuffer visszaadott mögöttes puffer, a rendszer felülírja a tömb tartalmát, és nincs kivétel.

Lásd még

A következőre érvényes: