FileChannel.TransferTo(Int64, Int64, IWritableByteChannel) 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 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.
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.