IAsynchronousByteChannel.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(ByteBuffer) |
Legge una sequenza di byte da questo canale nel buffer specificato. |
| Read(ByteBuffer, Object, ICompletionHandler) |
Legge una sequenza di byte da questo canale nel buffer specificato. |
Read(ByteBuffer)
Legge una sequenza di byte da questo canale nel buffer specificato.
[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetRead_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IAsynchronousByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=26)]
public Java.Util.Concurrent.IFuture? Read(Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetRead_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IAsynchronousByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=26)>]
abstract member Read : Java.Nio.ByteBuffer -> Java.Util.Concurrent.IFuture
Parametri
- dst
- ByteBuffer
Buffer in cui devono essere trasferiti i byte
Valori restituiti
Oggetto Future che rappresenta il risultato dell'operazione
- Attributi
Commenti
Legge una sequenza di byte da questo canale nel buffer specificato.
Questo metodo avvia un'operazione di lettura asincrona per leggere una sequenza di byte da questo canale nel buffer specificato. Il metodo si comporta esattamente allo stesso modo del metodo, ad eccezione del #read(ByteBuffer,Object,CompletionHandler) read(ByteBuffer,Object,CompletionHandler) fatto che invece di specificare un gestore di completamento, questo metodo restituisce un Future oggetto che rappresenta il risultato in sospeso. Il Futuremetodo 's Future#get() get restituisce il numero di byte letti o -1 se non è possibile leggere byte perché il canale ha raggiunto la fine del flusso.
per java.nio.channels.AsynchronousByteChannel.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.
Si applica a
Read(ByteBuffer, Object, ICompletionHandler)
Legge una sequenza di byte da questo canale nel buffer specificato.
[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_Ljava_nio_ByteBuffer_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler:Java.Nio.Channels.IAsynchronousByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public void Read(Java.Nio.ByteBuffer? dst, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_Ljava_nio_ByteBuffer_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler:Java.Nio.Channels.IAsynchronousByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
abstract member Read : Java.Nio.ByteBuffer * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit
Parametri
- dst
- ByteBuffer
Buffer in cui devono essere trasferiti i byte
- attachment
- Object
Oggetto da associare all'operazione di I/O; può essere null
- handler
- ICompletionHandler
Gestore di completamento
- Attributi
Commenti
Legge una sequenza di byte da questo canale nel buffer specificato.
Questo metodo avvia un'operazione di lettura asincrona per leggere una sequenza di byte da questo canale nel buffer specificato. Il handler parametro è un gestore di completamento che viene richiamato quando l'operazione di lettura viene completata (o ha esito negativo). Il risultato passato al gestore di completamento è il numero di byte letti o -1 se non è possibile leggere byte perché il canale ha raggiunto la fine del flusso.
L'operazione di lettura può leggere fino a r byte dal canale, dove r è il numero di byte rimanenti nel buffer, ovvero al dst.remaining() momento del tentativo di lettura. Dove r è 0, l'operazione di lettura viene completata immediatamente con il risultato di 0 senza avviare un'operazione di I/O.
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 nel momento in cui viene eseguita la lettura. Al termine, la posizione del buffer sarà uguale a p + n; il limite non verrà modificato.
I buffer non sono sicuri per l'uso da parte di più thread simultanei, pertanto è necessario prestare attenzione a non accedere al buffer fino al completamento dell'operazione.
Questo metodo può essere richiamato in qualsiasi momento. Alcuni tipi di canale potrebbero non consentire a più letture di essere in sospeso in un determinato momento. Se un thread avvia un'operazione di lettura prima del completamento di un'operazione di lettura precedente, verrà generata un'eccezione ReadPendingException .
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.