IScatteringByteChannel.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 los búferes especificados. |
| Read(ByteBuffer[], Int32, Int32) |
Lee una secuencia de bytes de este canal en una subsecuencia de los búferes especificados. |
Read(ByteBuffer[])
Lee una secuencia de bytes de este canal en los búferes especificados.
[Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;)J", "GetRead_arrayLjava_nio_ByteBuffer_Handler:Java.Nio.Channels.IScatteringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public long Read(Java.Nio.ByteBuffer[]? dsts);
[<Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;)J", "GetRead_arrayLjava_nio_ByteBuffer_Handler:Java.Nio.Channels.IScatteringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Read : Java.Nio.ByteBuffer[] -> int64
Parámetros
- dsts
- ByteBuffer[]
Búferes en los que se van a transferir bytes
Devoluciones
El número de bytes leídos, posiblemente cero, o -1 si el canal ha llegado al final de la secuencia
- Atributos
Excepciones
si otro subproceso cierra el canal durante esta operación de lectura.
si otro subproceso interrumpe el subproceso que realiza la llamada mientras la operación está en curso. El estado de interrupción del subproceso de llamada se establece y se cierra el canal.
si el canal está cerrado.
si se produce otro error de E/S; los detalles están en el mensaje.
si el canal no se ha abierto en un modo que permita la lectura.
Comentarios
Lee una secuencia de bytes de este canal en los búferes especificados.
Una invocación de este método del formulario c.read(dsts) se comporta exactamente de la misma manera que la invocación.
<blockquote>
c.read(dsts, 0, dsts.length);
</blockquote>
Java documentación para java.nio.channels.ScatteringByteChannel.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[], Int32, Int32)
Lee una secuencia de bytes de este canal en una subsecuencia de los búferes especificados.
[Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;II)J", "GetRead_arrayLjava_nio_ByteBuffer_IIHandler:Java.Nio.Channels.IScatteringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public long Read(Java.Nio.ByteBuffer[]? dsts, int offset, int length);
[<Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;II)J", "GetRead_arrayLjava_nio_ByteBuffer_IIHandler:Java.Nio.Channels.IScatteringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Read : Java.Nio.ByteBuffer[] * int * int -> int64
Parámetros
- dsts
- ByteBuffer[]
Búferes en los que se van a transferir bytes
- offset
- Int32
Desplazamiento dentro de la matriz de búfer del primer búfer en el que se van a transferir bytes; debe ser no negativo y no mayor que dsts.length
- length
- Int32
Número máximo de búferes a los que se va a acceder; debe ser no negativo y no mayor que dsts.length - offset
Devoluciones
El número de bytes leídos, posiblemente cero, o -1 si el canal ha llegado al final de la secuencia
- Atributos
Excepciones
si otro subproceso cierra el canal durante esta operación de lectura.
si otro subproceso interrumpe el subproceso que realiza la llamada mientras la operación está en curso. El estado de interrupción del subproceso de llamada se establece y se cierra el canal.
si el canal está cerrado.
si offset es o length , o si offset + length es mayor que el tamaño de buffers.
si se produce otro error de E/S; los detalles están en el mensaje.
si el canal no se ha abierto en un modo que permita la lectura.
Comentarios
Lee una secuencia de bytes de este canal en una subsecuencia de los búferes especificados.
Una invocación de este método intenta leer hasta r bytes de este canal, donde r es el número total de bytes que quedan en la subsecuencia especificada de la matriz de búfer especificada, es decir,
<blockquote>
dsts[offset].remaining()
+ dsts[offset+1].remaining()
+ ... + dsts[offset+length-1].remaining()
</blockquote>
en el momento en que se invoca este método.
Supongamos que se lee una secuencia de bytes de longitud n , donde 0 <= n <= r. Hasta los primeros dsts[offset].remaining() bytes de esta secuencia se transfieren al búfer dsts[offset], hasta los siguientes dsts[offset+1].remaining() bytes se transfieren al búfer dsts[offset+1], etc., hasta que toda la secuencia de bytes se transfiere a los búferes especificados. Tantos bytes como sea posible se transfieren a cada búfer, por lo que la posición final de cada búfer actualizado, excepto el último búfer actualizado, se garantiza que sea igual al límite de ese búfer.
Este método se puede invocar en cualquier momento. Sin embargo, si otro subproceso ya ha iniciado una operación de lectura en este canal, se bloqueará una invocación de este método hasta que se complete la primera operació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.