FileChannel.TransferFrom(IReadableByteChannel, Int64, Int64) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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.
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.