MemoryStream.Read Metod

Definition

Överlagringar

Name Description
Read(Span<Byte>)

Läser en sekvens med byte från den aktuella minnesströmmen och ökar positionen i minnesströmmen med antalet lästa byte.

Read(Byte[], Int32, Int32)

Läser ett byteblock från den aktuella strömmen och skriver data till en buffert.

Read(Span<Byte>)

Läser en sekvens med byte från den aktuella minnesströmmen och ökar positionen i minnesströmmen med antalet lästa byte.

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

Parametrar

destinationbuffer
Span<Byte>

En region med minne. När den här metoden returnerar ersätts innehållet i det här intervallet av byte som läse från den aktuella minnesströmkällan.

Returer

Det totala antalet byte som lästs in i bufferten. Detta kan vara mindre än antalet byte som allokerats i bufferten om många byte för närvarande inte är tillgängliga eller noll (0) om slutet av minnesströmmen har nåtts.

Gäller för

Read(Byte[], Int32, Int32)

Läser ett byteblock från den aktuella strömmen och skriver data till en buffert.

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

Parametrar

buffer
Byte[]

När den här metoden returnerar innehåller den angivna bytematrisen med värdena mellan offset och (offset + count - 1) ersatta av tecknen som lästs från den aktuella strömmen.

offset
Int32

Den nollbaserade byteförskjutningen buffer där du börjar lagra data från den aktuella strömmen.

count
Int32

Det maximala antalet byte som ska läsas.

Returer

Det totala antalet byte som skrivits in i bufferten. Detta kan vara mindre än antalet byte som begärs om det antalet byte inte är tillgängligt för närvarande, eller noll om strömmens slut nås innan byte läse.

Undantag

buffer är null.

offset eller count är negativ.

offset subtraheras från buffertlängden är mindre än count.

Den aktuella ströminstansen är stängd.

Exempel

Det här kodexemplet är en del av ett större exempel för MemoryStream klassen.

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

Kommentarer

Den här metoden åsidosätter Read.

Parametern offset ger förskjutningen av den första byte som buffer data från den aktuella strömmen skrivs till. Parametern count ger det maximala antalet byte som ska läsas från den aktuella strömmen. Det returnerade värdet är det faktiska antalet lästa byte eller noll om strömmens slut nås.

Om läsåtgärden lyckas avancerar den aktuella positionen i dataströmmen med antalet lästa byte. Om ett undantag inträffar förblir den aktuella positionen i dataströmmen oförändrad.

Metoden Read returnerar endast noll om strömmens slut nås. I alla andra fall Read läser du alltid minst en byte från strömmen innan den returneras. Om inga data är tillgängliga från strömmen vid ett anrop till ReadRead returnerar metoden per definition noll (strömmens slut nås automatiskt). En implementering kan returnera färre byte än vad som begärts även om dataströmmens slut inte har nåtts.

Används BinaryReader för att läsa primitiva datatyper.

Caution

Om bytematrisen som anges i parametern buffer är den underliggande buffert som GetBuffer returneras av metoden skrivs matrisinnehållet över och inget undantag genereras.

Se även

Gäller för