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

Definição

Transfere bytes para o arquivo deste canal do canal de bytes legível 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

O canal de origem

position
Int64

A posição dentro do arquivo no qual a transferência deve ser iniciada; deve ser não negativo

count
Int64

O número máximo de bytes a serem transferidos; deve ser não negativo

Retornos

O número de bytes, possivelmente zero, que foram realmente transferidos

Atributos

Exceções

se os parâmetros forem inválidos.

se o canal de origem não for legível.

se este canal não for gravável.

se um dos canais já tiver sido fechado.

se um dos canais for fechado por outros threads durante essa operação.

se o thread for interrompido durante essa operação.

se ocorrer algum erro de E/S.

Comentários

Transfere bytes para o arquivo deste canal do canal de bytes legível especificado.

É feita uma tentativa de ler até count bytes do canal de origem e gravá-los no arquivo deste canal a partir do determinado position. Uma invocação desse método pode ou não transferir todos os bytes solicitados; se isso depende ou não das naturezas e estados dos canais. Menos do que o número de bytes solicitado será transferido se o canal de origem tiver menos de count bytes restantes ou se o canal de origem não estiver bloqueando e tiver menos bytes count imediatamente disponíveis em seu buffer de entrada.

Esse método não modifica a posição desse canal. Se a posição determinada for maior que o tamanho atual do arquivo, nenhum bytes será transferido. Se o canal de origem tiver uma posição, os bytes serão lidos começando nessa posição e, em seguida, a posição será incrementada pelo número de bytes lidos.

Esse método é potencialmente muito mais eficiente do que um loop simples que lê do canal de origem e grava neste canal. Muitos sistemas operacionais podem transferir bytes diretamente do canal de origem para o cache do sistema de arquivos sem realmente copiá-los.

Java documentação para java.nio.channels.FileChannel.transferFrom(java.nio.channels.ReadableByteChannel, long, long).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.

Aplica-se a