Lenguaje

IScatteringByteChannel.Read Método

Definición

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.

Java documentación para java.nio.channels.ScatteringByteChannel.read(java.nio.ByteBuffer[], int, int).

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