Linguaggio

IAsynchronousByteChannel.Read Metodo

Definizione

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 .

per java.nio.channels.AsynchronousByteChannel.read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>).

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