語言

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

最大傳輸位元組數;必須是非負數

傳回

實際傳輸的位元組數,可能是零

屬性

例外狀況

如果參數無效。

如果來源通道無法讀取。

如果這個頻道無法寫入。

如果任一頻道已經被關閉。

如果任一通道在此操作過程中被其他執行緒關閉。

如果執行緒在此操作中被中斷。

如果發生任何 I/O 錯誤。

備註

從給定的可讀位元組通道傳輸位元組到該通道的檔案中。

嘗試從來源通道讀取最多位 count 元組,並從給定 position的 開始寫入該通道的檔案。 此方法的呼叫可能會轉移所有請求的位元組,也可能不會;是否會做到,取決於頻道的性質與狀態。 若來源通道剩餘位元組少於位元組,或來源通道非阻塞且count輸入緩衝區即時可用位元組少於位元組,傳輸的位元組數將count少於請求數量。

此方法不會改變該通道的位置。 若該位置大小大於檔案目前大小,則不會傳送任何位元組。 如果來源通道有位置,則從該位置開始讀取位元組,接著位置依讀取位元組數遞增。

這種方法可能比單純從來源通道讀取並寫入該通道的迴圈更有效率。 許多作業系統可以直接從來源通道傳輸位元組到檔案系統快取,而不必實際複製它們。

Java 文件 java.nio.channels.FileChannel.transferFrom(java.nio.channels.ReadableByteChannel, long, long)。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於