Condividi tramite


MemoryStream.Read Metodo

Definizione

Overload

Read(Span<Byte>)

Legge una sequenza di byte dal flusso di memoria corrente e fa avanzare la posizione corrente nel flusso di memoria del numero di byte letti.

Read(Byte[], Int32, Int32)

Legge un blocco di byte dal flusso corrente e scrive i dati in un buffer.

Read(Span<Byte>)

Origine:
MemoryStream.cs
Origine:
MemoryStream.cs
Origine:
MemoryStream.cs

Legge una sequenza di byte dal flusso di memoria corrente e fa avanzare la posizione corrente nel flusso di memoria del numero di byte letti.

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

Parametri

destinationbuffer
Span<Byte>

Un'area di memoria. Al termine di questo metodo, il contenuto di questo intervallo viene sostituito dai byte letti dall'origine del flusso di memoria corrente.

Restituisce

Numero complessivo di byte letti nel buffer. È possibile che questo numero sia inferiore a quello dei byte allocati nel buffer se la quantità di byte disponibili è minore oppure che corrisponda a zero (0) se è stata raggiunta la fine del flusso di memoria.

Si applica a

Read(Byte[], Int32, Int32)

Origine:
MemoryStream.cs
Origine:
MemoryStream.cs
Origine:
MemoryStream.cs

Legge un blocco di byte dal flusso corrente e scrive i dati in un buffer.

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

Parametri

buffer
Byte[]

Quando questo metodo viene restituito, contiene la matrice di byte specificata con i valori compresi offset and (offset + count - 1) sostituiti con i caratteri letti dall'origine corrente.

offset
Int32

Offset di byte in base zero in buffer da cui iniziare l'archiviazione dei dati dal flusso corrente.

count
Int32

Numero massimo di byte da leggere.

Restituisce

Numero complessivo di byte scritti nel buffer. Può essere minore del numero di byte richiesti se tale numero di byte non è al momento disponibile o pari a zero se è stata raggiunta la fine del flusso prima della lettura di qualsiasi byte.

Eccezioni

buffer è null.

offset o count è negativo.

offset sottratto alla lunghezza del buffer è minore di count.

L'istanza del flusso corrente è chiusa.

Esempio

Questo esempio di codice fa parte di un esempio più grande fornito per la MemoryStream classe.

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

Commenti

Questo metodo esegue l'override di Read.

Il offset parametro fornisce l'offset del primo byte in buffer cui vengono scritti i dati dal flusso corrente. Il count parametro fornisce il numero massimo di byte da leggere dal flusso corrente. Il valore restituito è il numero effettivo di byte letti o zero se viene raggiunta la fine del flusso.

Se l'operazione di lettura ha esito positivo, la posizione corrente all'interno del flusso avanza in base al numero di byte letti. Se si verifica un'eccezione, la posizione corrente all'interno del flusso rimane invariata.

Il Read metodo restituirà zero solo se viene raggiunta la fine del flusso. In tutti gli altri casi, Read legge sempre almeno un byte dal flusso prima di restituire. Per definizione, se non sono disponibili dati dal flusso dopo una chiamata a Read, il Read metodo restituisce zero (la fine del flusso viene raggiunta automaticamente). Un'implementazione è gratuita per restituire meno byte rispetto alla richiesta anche se la fine del flusso non è stata raggiunta.

Usare BinaryReader per la lettura dei tipi di dati primitivi.

Attenzione

Se la matrice di byte specificata nel buffer parametro è il buffer sottostante restituito dal GetBuffer metodo, il contenuto della matrice viene sovrascritto e non viene generata alcuna eccezione.

Vedi anche

Si applica a