IAsynchronousByteChannel.Read Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 .
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.