FileChannel.TransferFrom(IReadableByteChannel, Int64, Int64) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
從給定的可讀位元組通道傳輸位元組到該通道的檔案中。
[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
參數
源頻道
- position
- Int64
檔案中開始傳輸的位置;必須是非負數
- count
- Int64
最大傳輸位元組數;必須是非負數
傳回
實際傳輸的位元組數,可能是零
- 屬性
例外狀況
如果參數無效。
如果來源通道無法讀取。
如果這個頻道無法寫入。
如果任一頻道已經被關閉。
如果任一通道在此操作過程中被其他執行緒關閉。
如果執行緒在此操作中被中斷。
如果發生任何 I/O 錯誤。
備註
從給定的可讀位元組通道傳輸位元組到該通道的檔案中。
嘗試從來源通道讀取最多位 count 元組,並從給定 position的 開始寫入該通道的檔案。 此方法的呼叫可能會轉移所有請求的位元組,也可能不會;是否會做到,取決於頻道的性質與狀態。 若來源通道剩餘位元組少於位元組,或來源通道非阻塞且count輸入緩衝區即時可用位元組少於位元組,傳輸的位元組數將count少於請求數量。
此方法不會改變該通道的位置。 若該位置大小大於檔案目前大小,則不會傳送任何位元組。 如果來源通道有位置,則從該位置開始讀取位元組,接著位置依讀取位元組數遞增。
這種方法可能比單純從來源通道讀取並寫入該通道的迴圈更有效率。 許多作業系統可以直接從來源通道傳輸位元組到檔案系統快取,而不必實際複製它們。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。