Language

FileChannel.TransferTo(Int64, Int64, IWritableByteChannel) メソッド

定義

このチャネルのファイルから特定の書き込み可能バイト チャネルにバイトを転送します。

[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

パラメーター

position
Int64

転送を開始するファイル内の位置。は負以外である必要があります

count
Int64

転送される最大バイト数。は負以外である必要があります

target
IWritableByteChannel

ターゲット チャネル

返品

実際に転送されたバイト数 (場合によっては 0)

属性

例外

パラメーターが無効な場合は 。

このチャネルが読み取り可能でない場合は 。

ターゲット チャネルが書き込み可能でない場合は 〝。

いずれかのチャネルが既に閉じている場合は〘。

この操作中にいずれかのチャネルが他のスレッドによって閉じている場合は。

この操作中にスレッドが中断された場合は 。

I/O エラーが発生した場合は〘。

注釈

このチャネルのファイルから特定の書き込み可能バイト チャネルにバイトを転送します。

このチャネルのファイル内の特定のcountから始まる最大position バイトを読み取り、ターゲット チャネルに書き込もうとします。 このメソッドの呼び出しでは、要求されたすべてのバイトが転送される場合と転送されない場合があります。それがそうするかどうかは、チャネルの性質と状態によって異なります。 このチャネルのファイルに含まれるバイト数が、指定されたcountから始まるpositionバイト数より少ない場合、またはターゲット チャネルが非ブロッキングであり、出力バッファーの空きバイト数がcountバイト未満の場合、転送されるバイト数より少なくなります。

このメソッドは、このチャネルの位置を変更しません。 指定された位置がファイルの現在のサイズより大きい場合、バイトは転送されません。 ターゲット チャネルに位置がある場合は、その位置からバイトが書き込まれ、その位置は書き込まれたバイト数だけインクリメントされます。

このメソッドは、このチャネルから読み取ってターゲット チャネルに書き込む単純なループよりもはるかに効率的である可能性があります。 多くのオペレーティング システムでは、実際にコピーすることなく、ファイル システム キャッシュからターゲット チャネルにバイトを直接転送できます。

java.nio.channels.FileChannel.transferTo(long, long, java.nio.channels.WritableByteChannel)の Java ドキュメント。

このページの一部は、Androidオープンソースプロジェクトによって作成および共有された作業に基づく変更でありCreative Commons 2.5属性ライセンスに記載されている条件に従って使用されます。

適用対象