FileChannel.TransferFrom(IReadableByteChannel, Int64, Int64) メソッド

定義

指定された読み取り可能なバイト チャネルから、このチャネルのファイルにバイトを転送します。

[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

パラメーター

src
IReadableByteChannel

ソース チャネル

position
Int64

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

count
Int64

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

返品

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

属性

例外

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

ソース チャネルが読み取り可能でない場合は 。

このチャネルが書き込み可能でない場合は 。

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

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

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

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

注釈

指定された読み取り可能なバイト チャネルから、このチャネルのファイルにバイトを転送します。

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

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

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

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

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象