MemoryStream.Read Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
| Nome | Descrizione |
|---|---|
| Read(Span<Byte>) |
Legge una sequenza di byte dal flusso di memoria corrente e sposta in avanti la posizione all'interno del flusso di memoria in base al 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>)
Legge una sequenza di byte dal flusso di memoria corrente e sposta in avanti la posizione all'interno del flusso di memoria in base al numero di byte letti.
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
Parametri
Area di memoria. Quando termina, il contenuto di questo intervallo viene sostituito dai byte letti dall'origine corrente del flusso di memoria.
Valori restituiti
Numero totale di byte letti nel buffer. Può essere minore del numero di byte allocati nel buffer se molti byte non sono attualmente disponibili oppure zero (0) se è stata raggiunta la fine del flusso di memoria.
Si applica a
Read(Byte[], Int32, Int32)
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 termina, questo metodo contiene la matrice di byte specificata con i valori compresi tra offset e (offset + count - 1) sostituiti dai caratteri letti dal flusso corrente.
- offset
- Int32
Offset dei byte in base zero in in buffer corrispondenza del quale iniziare l'archiviazione dei dati dal flusso corrente.
- count
- Int32
Numero massimo di byte da leggere.
Valori restituiti
Numero totale di byte scritti nel buffer. Può essere minore del numero di byte richiesti se il numero di byte non è attualmente disponibile oppure zero se viene raggiunta la fine del flusso prima che vengano letti byte.
Eccezioni
buffer è null.
offset o count è negativo.
offset sottratto dalla lunghezza del buffer è minore di count.
L'istanza del flusso corrente è chiusa.
Esempio
Questo esempio di codice fa parte di un esempio più ampio fornito per la MemoryStream classe .
// 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 del 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 in una chiamata a Read, il Read metodo restituisce zero (viene raggiunta automaticamente la fine del flusso). Un'implementazione è libera di restituire meno byte di quanto richiesto anche se la fine del flusso non è stata raggiunta.
Usare BinaryReader per la lettura dei tipi di dati primitivi.
Caution
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.