Sprache

FileChannel.TransferFrom(IReadableByteChannel, Int64, Int64) Methode

Definition

Überträgt Bytes aus dem angegebenen lesbaren Bytekanal in die Datei dieses Kanals.

[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

Parameter

src
IReadableByteChannel

Der Quellkanal

position
Int64

Die Position innerhalb der Datei, an der die Übertragung beginnen soll; muss nicht negativ sein

count
Int64

Die maximale Anzahl von Bytes, die übertragen werden sollen; muss nicht negativ sein

Gibt zurück

Die Anzahl der Bytes, möglicherweise Null, die tatsächlich übertragen wurden

Attribute

Ausnahmen

wenn die Parameter ungültig sind.

wenn der Quellkanal nicht lesbar ist.

wenn dieser Kanal nicht schreibbar ist.

wenn ein Kanal bereits geschlossen wurde.

wenn beide Kanäle während dieses Vorgangs von anderen Threads geschlossen werden.

wenn der Thread während dieses Vorgangs unterbrochen wird.

wenn ein E/A-Fehler auftritt.

Hinweise

Überträgt Bytes aus dem angegebenen lesbaren Bytekanal in die Datei dieses Kanals.

Es wird versucht, bis zu Bytes aus dem Quellkanal zu count lesen und in die Datei dieses Kanals zu schreiben, beginnend mit der angegebenen position. Ein Aufruf dieser Methode kann oder kann nicht alle angeforderten Bytes übertragen; ob dies der Fall ist, hängt von den Naturen und Zuständen der Kanäle ab. Weniger als die angeforderte Anzahl von Bytes wird übertragen, wenn der Quellkanal weniger als count Bytes übrig hat oder wenn der Quellkanal nicht blockiert wird und weniger Bytes count sofort im Eingabepuffer verfügbar sind.

Diese Methode ändert die Position dieses Kanals nicht. Wenn die angegebene Position größer als die aktuelle Größe der Datei ist, werden keine Bytes übertragen. Wenn der Quellkanal eine Position aufweist, werden Bytes an dieser Position gelesen, und dann wird die Position um die Anzahl der gelesenen Bytes erhöht.

Diese Methode ist potenziell viel effizienter als eine einfache Schleife, die aus dem Quellkanal liest und in diesen Kanal schreibt. Viele Betriebssysteme können Bytes direkt vom Quellkanal in den Dateisystemcache übertragen, ohne sie tatsächlich zu kopieren.

Java Dokumentation für java.nio.channels.FileChannel.transferFrom(java.nio.channels.ReadableByteChannel, long, long).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: