InputStream.ReadNBytes 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
ReadNBytes(Int32) |
Legge fino a un numero specificato di byte dal flusso di input. |
ReadNBytes(Byte[], Int32, Int32) |
Legge il numero di byte richiesto dal flusso di input nella matrice di byte specificata. |
ReadNBytes(Int32)
Legge fino a un numero specificato di byte dal flusso di input.
[Android.Runtime.Register("readNBytes", "(I)[B", "GetReadNBytes_IHandler", ApiSince=33)]
public virtual byte[]? ReadNBytes (int len);
[<Android.Runtime.Register("readNBytes", "(I)[B", "GetReadNBytes_IHandler", ApiSince=33)>]
abstract member ReadNBytes : int -> byte[]
override this.ReadNBytes : int -> byte[]
Parametri
- len
- Int32
numero massimo di byte da leggere
Restituisce
matrice di byte contenente i byte letti da questo flusso di input
- Attributi
Commenti
Legge fino a un numero specificato di byte dal flusso di input. Questo metodo si blocca fino a quando non viene rilevato il numero di byte richiesto, la fine del flusso o viene generata un'eccezione. Questo metodo non chiude il flusso di input.
La lunghezza della matrice restituita è uguale al numero di byte letti dal flusso. Se len
è zero, non vengono letti byte e viene restituita una matrice di byte vuota. In caso contrario, fino a len
byte vengono letti dal flusso. È possibile leggere meno di len
byte se viene rilevata la fine del flusso.
Quando questo flusso raggiunge la fine del flusso, ulteriori chiamate di questo metodo restituiranno una matrice di byte vuota.
Si noti che questo metodo è destinato a casi semplici in cui è utile leggere il numero specificato di byte in una matrice di byte. La quantità totale di memoria allocata da questo metodo è proporzionale al numero di byte letti dal flusso associato da len
. Pertanto, il metodo può essere chiamato in modo sicuro con valori molto grandi di len
memoria sufficiente disponibile.
Il comportamento per il caso in cui il flusso di input viene chiuso in modo asincrono o il thread interrotto durante la lettura è specifico del flusso di input e pertanto non specificato.
Se si verifica un errore di I/O durante la lettura dal flusso di input, l'operazione può essere eseguita dopo alcuni, ma non tutti, i byte sono stati letti. Di conseguenza, il flusso di input potrebbe non trovarsi alla fine del flusso e potrebbe trovarsi in uno stato incoerente. È consigliabile chiudere tempestivamente il flusso se si verifica un errore di I/O.
Aggiunta in 11.
Documentazione java per java.io.InputStream.readNBytes(int)
.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.
Si applica a
ReadNBytes(Byte[], Int32, Int32)
Legge il numero di byte richiesto dal flusso di input nella matrice di byte specificata.
[Android.Runtime.Register("readNBytes", "([BII)I", "GetReadNBytes_arrayBIIHandler", ApiSince=33)]
public virtual int ReadNBytes (byte[]? b, int off, int len);
[<Android.Runtime.Register("readNBytes", "([BII)I", "GetReadNBytes_arrayBIIHandler", ApiSince=33)>]
abstract member ReadNBytes : byte[] * int * int -> int
override this.ReadNBytes : byte[] * int * int -> int
Parametri
- b
- Byte[]
matrice di byte in cui vengono letti i dati
- off
- Int32
offset iniziale in b
in corrispondenza del quale vengono scritti i dati
- len
- Int32
numero massimo di byte da leggere
Restituisce
numero effettivo di byte letti nel buffer
- Attributi
Commenti
Legge il numero di byte richiesto dal flusso di input nella matrice di byte specificata. Questo metodo blocca fino a quando len
non vengono letti byte di dati di input, fine del flusso o viene generata un'eccezione. Viene restituito il numero di byte effettivamente letti, possibilmente zero. Questo metodo non chiude il flusso di input.
Nel caso in cui venga raggiunta la fine del flusso prima len
della lettura dei byte, verrà restituito il numero effettivo di byte letti. Quando questo flusso raggiunge la fine del flusso, ulteriori chiamate di questo metodo restituiranno zero.
Se len
è zero, non viene letto alcun byte e 0
viene restituito; in caso contrario, viene eseguito un tentativo di lettura fino a len
byte.
Il primo byte letto viene archiviato nell'elemento b[off]
, quello successivo in b[off+1]
e così via. Il numero di byte letti è, al massimo, uguale a len
. Lasciare che k sia il numero di byte effettivamente letti; questi byte verranno archiviati in elementi b[off]
fino ab[off+
k-1]
, lasciando gli elementi b[off+
k]
attraverso b[off+len-1]
non interessati.
Il comportamento per il caso in cui il flusso di input viene chiuso in modo asincrono o il thread interrotto durante la lettura è specifico del flusso di input e pertanto non specificato.
Se si verifica un errore di I/O durante la lettura dal flusso di input, può farlo dopo alcuni, ma non tutti, i byte di sono stati aggiornati con i dati del flusso di b
input. Di conseguenza, il flusso di input e b
può essere in uno stato incoerente. È consigliabile chiudere tempestivamente il flusso se si verifica un errore di I/O.
Aggiunta in 9.
Documentazione java per java.io.InputStream.readNBytes(byte[], int, int)
.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.