Lenguaje

IAsynchronousByteChannel.Read Método

Definición

Sobrecargas

Nombre Description
Read(ByteBuffer)

Lee una secuencia de bytes de este canal en el búfer especificado.

Read(ByteBuffer, Object, ICompletionHandler)

Lee una secuencia de bytes de este canal en el búfer especificado.

Read(ByteBuffer)

Lee una secuencia de bytes de este canal en el búfer especificado.

[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

Parámetros

dst
ByteBuffer

Búfer en el que se van a transferir bytes

Devoluciones

Un futuro que representa el resultado de la operación

Atributos

Comentarios

Lee una secuencia de bytes de este canal en el búfer especificado.

Este método inicia una operación de lectura asincrónica para leer una secuencia de bytes de este canal en el búfer especificado. El método se comporta exactamente de la misma manera que el #read(ByteBuffer,Object,CompletionHandler) read(ByteBuffer,Object,CompletionHandler) método, excepto que en lugar de especificar un controlador de finalización, este método devuelve un Future que representa el resultado pendiente. El Futuremétodo de Future#get() get devuelve el número de bytes leídos o -1 si no se puede leer ningún bytes porque el canal ha llegado al final de la secuencia.

Java documentación para java.nio.channels.AsynchronousByteChannel.read(java.nio.ByteBuffer).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a

Read(ByteBuffer, Object, ICompletionHandler)

Lee una secuencia de bytes de este canal en el búfer especificado.

[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

Parámetros

dst
ByteBuffer

Búfer en el que se van a transferir bytes

attachment
Object

Objeto que se va a adjuntar a la operación de E/S; puede ser null

handler
ICompletionHandler

Controlador de finalización

Atributos

Comentarios

Lee una secuencia de bytes de este canal en el búfer especificado.

Este método inicia una operación de lectura asincrónica para leer una secuencia de bytes de este canal en el búfer especificado. El handler parámetro es un controlador de finalización que se invoca cuando se completa la operación de lectura (o se produce un error). El resultado pasado al controlador de finalización es el número de bytes leídos o -1 si no se puede leer ningún bytes porque el canal ha llegado al final del flujo.

La operación de lectura puede leer hasta bytes r desde el canal, donde r es el número de bytes restantes en el búfer, es decir, dst.remaining() en el momento en que se intenta leer. Donde r es 0, la operación de lectura se completa inmediatamente con el resultado de sin iniciar una operación de 0 E/S.

Supongamos que se lee una secuencia de bytes de longitud n , donde 0 <  n <=  r. Esta secuencia de bytes se transferirá al búfer para que el primer byte de la secuencia esté en el índice p y el último byte se encuentra en el índice p +  n - 1, donde p es la posición del búfer en el momento en que se realiza la lectura. Tras finalizar la posición del búfer será igual a p +  n; su límite no cambiará.

Los búferes no son seguros para su uso por varios subprocesos simultáneos, por lo que se debe tener cuidado para no tener acceso al búfer hasta que se haya completado la operación.

Este método se puede invocar en cualquier momento. Es posible que algunos tipos de canal no permitan que más de una lectura esté pendiente en un momento dado. Si un subproceso inicia una operación de lectura antes de que se haya completado una operación de lectura anterior, se producirá una ReadPendingException excepción .

Java documentación para java.nio.channels.AsynchronousByteChannel.read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a