IReadableByteChannel.Read(ByteBuffer) 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.
Legge una sequenza di byte da questo canale nel buffer specificato.
[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)I", "GetRead_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IReadableByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public int Read(Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)I", "GetRead_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IReadableByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Read : Java.Nio.ByteBuffer -> int
Parametri
- dst
- ByteBuffer
Buffer in cui devono essere trasferiti i byte
Valori restituiti
Numero di byte letti, possibilmente zero o -1 se il canale ha raggiunto la fine del flusso
- Attributi
Eccezioni
se un altro thread chiude il canale durante la lettura.
se un altro thread interrompe il thread chiamante mentre l'operazione è in corso. Lo stato di interrupt del thread chiamante è impostato e il canale viene chiuso.
se il canale è chiuso.
si verifica un altro errore di I/O, i dettagli si trovano nel messaggio.
se il canale non è stato aperto per la lettura.
Commenti
Legge una sequenza di byte da questo canale nel buffer specificato.
Viene effettuato un tentativo di lettura fino a r byte dal canale, dove r è il numero di byte rimanenti nel buffer, ovvero , dst.remaining()al momento in cui questo metodo viene richiamato.
Si supponga che venga letta una sequenza di byte di lunghezza n , dove 0 <= n <= r. Questa sequenza di byte verrà trasferita nel buffer in modo che il primo byte nella sequenza sia in corrispondenza dell'indice p e l'ultimo byte sia in corrispondenza dell'indice p + n - 1, dove p è la posizione del buffer al momento in cui viene richiamato questo metodo. Al momento della restituzione della posizione del buffer sarà uguale a p + n; il limite non verrà modificato.
Un'operazione di lettura potrebbe non riempire il buffer e, di fatto, potrebbe non leggere alcun byte. Indipendentemente dal fatto che lo faccia dipende dalla natura e dallo stato del canale. Un canale socket in modalità non di blocco, ad esempio, non può leggere più byte di quanto siano immediatamente disponibili dal buffer di input del socket; analogamente, un canale di file non può leggere più byte di quanto rimanga nel file. È garantito, tuttavia, che se un canale è in modalità di blocco ed è presente almeno un byte rimanente nel buffer, questo metodo verrà bloccato fino a quando non viene letto almeno un byte.
Questo metodo può essere richiamato in qualsiasi momento. Se un altro thread ha già avviato un'operazione di lettura su questo canale, tuttavia, una chiamata di questo metodo verrà bloccata fino al completamento della prima operazione.
per java.nio.channels.ReadableByteChannel.read(java.nio.ByteBuffer).
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.