Compartir a través de


Pipe.SourceChannel.Read Método

Definición

Sobrecargas

Read(ByteBuffer)

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

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 el búfer especificado.

[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)I", "GetRead_Ljava_nio_ByteBuffer_Handler")]
public abstract int Read (Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)I", "GetRead_Ljava_nio_ByteBuffer_Handler")>]
abstract member Read : Java.Nio.ByteBuffer -> int

Parámetros

dst
ByteBuffer

Búfer en el 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

Implementaciones

Atributos

Comentarios

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

Se intenta leer hasta bytes r del canal, donde r es el número de bytes restantes en el búfer, es decir, dst.remaining(), 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. 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 invoca este método. Al devolver la posición del búfer será igual a p + n; su límite no cambiará.

Es posible que una operación de lectura no rellene el búfer y, de hecho, no lea ningún bytes en absoluto. Si lo hace o no depende de la naturaleza y el estado del canal. Un canal de socket en modo sin bloqueo, por ejemplo, no puede leer más bytes de los que están disponibles inmediatamente desde el búfer de entrada del socket; de forma similar, un canal de archivo no puede leer más bytes de los que permanecen en el archivo. Sin embargo, se garantiza que si un canal está en modo de bloqueo y hay al menos un byte restante en el búfer, este método se bloqueará hasta que se lea al menos un byte.

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.

Documentación de Java para java.nio.channels.ReadableByteChannel.read(java.nio.ByteBuffer).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a

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")]
public abstract long Read (Java.Nio.ByteBuffer[]? dsts);
[<Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;)J", "GetRead_arrayLjava_nio_ByteBuffer_Handler")>]
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

Implementaciones

Atributos

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>

Documentación de Java 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 proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

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")]
public abstract long Read (Java.Nio.ByteBuffer[]? dsts, int offset, int length);
[<Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;II)J", "GetRead_arrayLjava_nio_ByteBuffer_IIHandler")>]
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

Implementaciones

Atributos

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.

Documentación de Java 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 proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a