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