IAsynchronousByteChannel.Write 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| Write(ByteBuffer) |
從給定的緩衝區寫入一串位元組到該通道。 |
| Write(ByteBuffer, Object, ICompletionHandler) |
從給定的緩衝區寫入一串位元組到該通道。 |
Write(ByteBuffer)
從給定的緩衝區寫入一串位元組到該通道。
[Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetWrite_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IAsynchronousByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=26)]
public Java.Util.Concurrent.IFuture? Write(Java.Nio.ByteBuffer? src);
[<Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetWrite_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IAsynchronousByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=26)>]
abstract member Write : Java.Nio.ByteBuffer -> Java.Util.Concurrent.IFuture
參數
- src
- ByteBuffer
要從中擷取位元組的緩衝區
傳回
一個代表這次行動結果的未來
- 屬性
備註
從給定的緩衝區寫入一串位元組到該通道。
此方法會啟動非同步寫入操作,從給定緩衝區寫入一串位元組至該通道。 此方法的行為與該 #write(ByteBuffer,Object,CompletionHandler) write(ByteBuffer,Object,CompletionHandler) 方法完全相同,不同的是,該方法回傳的是代表待處理結果的 a Future ,而非指定完成處理程序。
Futures Future#get() get 方法回傳寫入的位元組數。
Java 文件 java.nio.channels.AsynchronousByteChannel.write(java.nio.ByteBuffer)。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
適用於
Write(ByteBuffer, Object, ICompletionHandler)
從給定的緩衝區寫入一串位元組到該通道。
[Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetWrite_Ljava_nio_ByteBuffer_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler:Java.Nio.Channels.IAsynchronousByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public void Write(Java.Nio.ByteBuffer? src, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetWrite_Ljava_nio_ByteBuffer_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler:Java.Nio.Channels.IAsynchronousByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
abstract member Write : Java.Nio.ByteBuffer * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit
參數
- src
- ByteBuffer
要從中擷取位元組的緩衝區
- attachment
- Object
要附加到 I/O 操作上的物件;可以是 null
- handler
- ICompletionHandler
完成處理物件
- 屬性
備註
從給定的緩衝區寫入一串位元組到該通道。
此方法會啟動非同步寫入操作,從給定緩衝區寫入一串位元組至該通道。 參數 handler 是一個完成處理程序,當寫入操作完成(或失敗)時會被呼叫。 傳遞給完備處理器的結果是寫入的位元組數。
寫入操作可寫入最多 r 個位元組的通道,其中 r 是緩衝區中剩餘的位元組數,即 src.remaining() 寫入嘗試時的位元組數。 當 r 為 0 時,寫入操作立即完成,結果為 , 0 無需啟動 I/O 操作。
假設寫入一個長度為 n 的位元組序列,其中 0& nbsp;< n <= R。 此位元組序列會從索引 p 開始的緩衝區傳輸,p 是寫入時緩衝區的位置;最後寫入的位元組索引為 p + n - 1 完成後緩衝區的位置將等於 p + n;其極限不會改變。
緩衝區不適合多個並行執行緒使用,因此應注意在操作完成前不要存取緩衝區。
此方法可隨時啟動。 某些通道類型可能不允許同時完成超過一個寫入。 如果執行緒在前一個寫入操作尚未完成前發起寫入操作,則會拋出 a WritePendingException 。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。