IGatheringByteChannel.Write 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 |
|---|---|
| Write(ByteBuffer[]) |
Escribe una secuencia de bytes en este canal desde los búferes especificados. |
| Write(ByteBuffer[], Int32, Int32) |
Escribe una secuencia de bytes en este canal desde una subsecuencia de los búferes especificados. |
Write(ByteBuffer[])
Escribe una secuencia de bytes en este canal desde los búferes especificados.
[Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;)J", "GetWrite_arrayLjava_nio_ByteBuffer_Handler:Java.Nio.Channels.IGatheringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public long Write(Java.Nio.ByteBuffer[]? srcs);
[<Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;)J", "GetWrite_arrayLjava_nio_ByteBuffer_Handler:Java.Nio.Channels.IGatheringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Write : Java.Nio.ByteBuffer[] -> int64
Parámetros
- srcs
- ByteBuffer[]
Búferes de los que se van a recuperar los bytes.
Devoluciones
Número de bytes escritos, posiblemente cero
- Atributos
Excepciones
si otro subproceso cierra el canal durante esta operación de escritura.
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 escribir.
Comentarios
Escribe una secuencia de bytes en este canal desde los búferes especificados.
Una invocación de este método del formulario c.write(srcs) se comporta exactamente de la misma manera que la invocación.
<blockquote>
c.write(srcs, 0, srcs.length);
</blockquote>
Java documentación para java.nio.channels.GatheringByteChannel.write(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
Write(ByteBuffer[], Int32, Int32)
Escribe una secuencia de bytes en este canal desde una subsecuencia de los búferes especificados.
[Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;II)J", "GetWrite_arrayLjava_nio_ByteBuffer_IIHandler:Java.Nio.Channels.IGatheringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public long Write(Java.Nio.ByteBuffer[]? srcs, int offset, int length);
[<Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;II)J", "GetWrite_arrayLjava_nio_ByteBuffer_IIHandler:Java.Nio.Channels.IGatheringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Write : Java.Nio.ByteBuffer[] * int * int -> int64
Parámetros
- srcs
- ByteBuffer[]
Búferes de los que se van a recuperar los bytes.
- offset
- Int32
Desplazamiento dentro de la matriz de búfer del primer búfer desde el que se van a recuperar los bytes; debe ser no negativo y no mayor que srcs.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 srcs.length - offset
Devoluciones
Número de bytes escritos, posiblemente cero
- Atributos
Excepciones
si otro subproceso cierra el canal durante esta operación de escritura.
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 abrió para escribir.
Comentarios
Escribe una secuencia de bytes en este canal desde una subsecuencia de los búferes especificados.
Se intenta escribir hasta bytes r en este canal, donde r es el número total de bytes restantes en la subsecuencia especificada de la matriz de búfer especificada, es decir,
<blockquote>
srcs[offset].remaining()
+ srcs[offset+1].remaining()
+ ... + srcs[offset+length-1].remaining()
</blockquote>
en el momento en que se invoca este método.
Supongamos que se escribe una secuencia de bytes de longitud n , donde 0 <= n <= r. Hasta los primeros srcs[offset].remaining() bytes de esta secuencia se escriben desde el búfer srcs[offset], hasta los siguientes srcs[offset+1].remaining() bytes se escriben desde el búfer srcs[offset+1], etc., hasta que se escribe toda la secuencia de bytes. Tantos bytes como sea posible se escriben desde cada búfer, por lo que se garantiza que la posición final de cada búfer actualizado, excepto el último búfer actualizado, sea igual al límite del búfer.
A menos que se especifique lo contrario, una operación de escritura solo devolverá después de escribir todos los bytes solicitados por r . Algunos tipos de canales, dependiendo de su estado, pueden escribir solo algunos de los bytes o, posiblemente, ninguno en absoluto. Un canal de socket en modo sin bloqueo, por ejemplo, no puede escribir más bytes de los que están libres en el búfer de salida del socket.
Este método se puede invocar en cualquier momento. Sin embargo, si otro subproceso ya ha iniciado una operación de escritura 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.