IAsynchronousByteChannel.Write メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
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
バイトの取得元のバッファー
戻り値
操作の結果を表す Future
- 属性
注釈
指定されたバッファーからこのチャネルにバイトシーケンスを書き込みます。
このメソッドは、指定されたバッファーからこのチャネルにバイトシーケンスを書き込む非同期書き込み操作を開始します。 メソッドは、完了ハンドラーを指定する代わりに、保留中の結果を #write(ByteBuffer,Object,CompletionHandler) write(ByteBuffer,Object,CompletionHandler)
表す を返 Future
す点を除き、メソッドとまったく同じ方法で動作します。 の Future#get() get
メソッドはFuture
、書き込まれたバイト数を返します。
の Java ドキュメント java.nio.channels.AsynchronousByteChannel.write(java.nio.ByteBuffer)
。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
適用対象
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 の場合、書き込み操作は I/O 操作を開始せずに の0
結果ですぐに完了します。
長さ n のバイト シーケンスが書き込まれるとします。ここで 0
、nbsp&;<
nbsp を&します。n <=
r. このバイト シーケンスは、インデックス p から始まるバッファーから転送されます。ここで、 p は書き込みが実行された時点でのバッファーの位置です。書き込まれた最後のバイトのインデックスは 、 nbsp&p になります。+
n -
nbsp;1
を&します。 完了すると、バッファーの位置は p  と等しくなります。+
n;その制限は変更されません。
バッファーは複数の同時実行スレッドで使用しても安全ではありません。そのため、操作が完了するまでバッファーにアクセスしないように注意する必要があります。
このメソッドは、いつでも呼び出すことができます。 チャネルの種類によっては、特定の時点で複数の書き込みを未処理にできない場合があります。 以前の書き込み操作が完了する前にスレッドが書き込み操作を開始すると、 WritePendingException
がスローされます。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。