Idioma

FileChannel.TransferTo(Int64, Int64, IWritableByteChannel) Método

Definição

Transfere bytes do arquivo deste canal para o canal de bytes gravável especificado.

[Android.Runtime.Register("transferTo", "(JJLjava/nio/channels/WritableByteChannel;)J", "GetTransferTo_JJLjava_nio_channels_WritableByteChannel_Handler")]
public abstract long TransferTo(long position, long count, Java.Nio.Channels.IWritableByteChannel? target);
[<Android.Runtime.Register("transferTo", "(JJLjava/nio/channels/WritableByteChannel;)J", "GetTransferTo_JJLjava_nio_channels_WritableByteChannel_Handler")>]
abstract member TransferTo : int64 * int64 * Java.Nio.Channels.IWritableByteChannel -> int64

Parâmetros

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

target
IWritableByteChannel

O canal de destino

Retornos

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

Atributos

Exceções

se os parâmetros forem inválidos.

se este canal não for legível.

se o canal de destino 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 do arquivo deste canal para o canal de bytes gravável especificado.

É feita uma tentativa de ler até count bytes a partir do dado position no arquivo deste canal e gravá-los no canal de destino. 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 solicitado de bytes será transferido se o arquivo desse canal contiver menos de count bytes começando no determinado positionou se o canal de destino não estiver bloqueando e tiver menos de count bytes gratuitos em seu buffer de saída.

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 destino tiver uma posição, os bytes serão gravados começando nessa posição e, em seguida, a posição será incrementada pelo número de bytes gravados.

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

Java documentação para java.nio.channels.FileChannel.transferTo(long, long, java.nio.channels.WritableByteChannel).

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

Aplica-se a