FileChannel.TransferFrom(IReadableByteChannel, Int64, Int64) Método

Definición

Transfiere bytes al archivo de este canal desde el canal de bytes legible especificado.

[Android.Runtime.Register("transferFrom", "(Ljava/nio/channels/ReadableByteChannel;JJ)J", "GetTransferFrom_Ljava_nio_channels_ReadableByteChannel_JJHandler")]
public abstract long TransferFrom(Java.Nio.Channels.IReadableByteChannel? src, long position, long count);
[<Android.Runtime.Register("transferFrom", "(Ljava/nio/channels/ReadableByteChannel;JJ)J", "GetTransferFrom_Ljava_nio_channels_ReadableByteChannel_JJHandler")>]
abstract member TransferFrom : Java.Nio.Channels.IReadableByteChannel * int64 * int64 -> int64

Parámetros

src
IReadableByteChannel

El canal de origen

position
Int64

Posición dentro del archivo en el que se va a comenzar la transferencia; debe ser no negativo

count
Int64

Número máximo de bytes que se van a transferir; debe ser no negativo

Devoluciones

El número de bytes, posiblemente cero, que se transfirieron realmente

Atributos

Excepciones

si los parámetros no son válidos.

si el canal de origen no es legible.

si este canal no se puede escribir.

si ya se ha cerrado alguno de los canales.

si cualquier canal está cerrado por otros subprocesos durante esta operación.

si el subproceso se interrumpe durante esta operación.

si se produce algún error de E/S.

Comentarios

Transfiere bytes al archivo de este canal desde el canal de bytes legible especificado.

Se intenta leer hasta count bytes del canal de origen y escribirlos en el archivo de este canal a partir del especificado position. Una invocación de este método puede transferir o no todos los bytes solicitados; si lo hace o no depende de la naturaleza y los estados de los canales. Menos del número solicitado de bytes se transferirá si el canal de origen tiene menos count de bytes restantes, o si el canal de origen no está bloqueado y tiene menos count de bytes disponibles inmediatamente en su búfer de entrada.

Este método no modifica la posición de este canal. Si la posición especificada es mayor que el tamaño actual del archivo, no se transfiere ningún bytes. Si el canal de origen tiene una posición, los bytes se leen a partir de esa posición y, a continuación, la posición se incrementa en función del número de bytes leídos.

Este método es potencialmente mucho más eficaz que un bucle simple que lee desde el canal de origen y escribe en este canal. Muchos sistemas operativos pueden transferir bytes directamente desde el canal de origen a la memoria caché del sistema de archivos sin copiarlos realmente.

Java documentación para java.nio.channels.FileChannel.transferFrom(java.nio.channels.ReadableByteChannel, long, long).

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