FileChannel.TransferTo(Int64, Int64, IWritableByteChannel) Metodo

Definizione

Trasferisce byte dal file del canale al canale scrivibile specificato.

[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

Parametri

position
Int64

Posizione all'interno del file in cui deve iniziare il trasferimento; deve essere non negativo

count
Int64

Numero massimo di byte da trasferire; deve essere non negativo

target
IWritableByteChannel

Canale di destinazione

Valori restituiti

Numero di byte, possibilmente zero, effettivamente trasferiti

Attributi

Eccezioni

se i parametri non sono validi.

se questo canale non è leggibile.

se il canale di destinazione non è scrivibile.

se uno dei due canali è già stato chiuso.

se uno dei due canali viene chiuso da altri thread durante questa operazione.

se il thread viene interrotto durante questa operazione.

se si verifica un errore di I/O.

Commenti

Trasferisce byte dal file del canale al canale scrivibile specificato.

Viene effettuato un tentativo di lettura fino a count byte a partire dall'oggetto specificato position nel file del canale e di scriverli nel canale di destinazione. Una chiamata di questo metodo può o meno trasferire tutti i byte richiesti; indipendentemente dal fatto che lo faccia dipende dalla natura e dagli stati dei canali. Meno del numero di byte richiesto vengono trasferiti se il file del canale contiene meno di count byte a partire dall'oggetto specificato positiono se il canale di destinazione non è bloccato e ha meno di count byte liberi nel buffer di output.

Questo metodo non modifica la posizione del canale. Se la posizione specificata è maggiore delle dimensioni correnti del file, non vengono trasferiti byte. Se il canale di destinazione ha una posizione, i byte vengono scritti a partire da tale posizione e la posizione viene incrementata in base al numero di byte scritti.

Questo metodo è potenzialmente molto più efficiente di un ciclo semplice che legge da questo canale e scrive nel canale di destinazione. Molti sistemi operativi possono trasferire i byte direttamente dalla cache del file system al canale di destinazione senza copiarli effettivamente.

per java.nio.channels.FileChannel.transferTo(long, long, java.nio.channels.WritableByteChannel).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a