IAsynchronousByteChannel.Read メソッド

定義

オーバーロード

Read(ByteBuffer)

このチャネルから特定のバッファーにバイトシーケンスを読み取ります。

Read(ByteBuffer, Object, ICompletionHandler)

このチャネルから特定のバッファーにバイトシーケンスを読み取ります。

Read(ByteBuffer)

このチャネルから特定のバッファーにバイトシーケンスを読み取ります。

[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetRead_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? Read (Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetRead_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IAsynchronousByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=26)>]
abstract member Read : Java.Nio.ByteBuffer -> Java.Util.Concurrent.IFuture

パラメーター

dst
ByteBuffer

バイトの転送先となるバッファー

戻り値

操作の結果を表す Future

属性

注釈

このチャネルから特定のバッファーにバイトシーケンスを読み取ります。

このメソッドは、このチャネルから特定のバッファーにバイトシーケンスを読み取る非同期読み取り操作を開始します。 メソッドは、完了ハンドラーを指定する代わりに保留中の結果を #read(ByteBuffer,Object,CompletionHandler) read(ByteBuffer,Object,CompletionHandler) 表す を返 Future す点を除き、メソッドとまったく同じように動作します。 の Future#get() get メソッドはFuture、読み取られたバイト数を返します。チャネル-1がストリームの終了に達したためにバイトを読み取ることができなかった場合は を返します。

java.nio.channels.AsynchronousByteChannel.read(java.nio.ByteBuffer)Java ドキュメント。

このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。

適用対象

Read(ByteBuffer, Object, ICompletionHandler)

このチャネルから特定のバッファーにバイトシーケンスを読み取ります。

[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_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 Read (Java.Nio.ByteBuffer? dst, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_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 Read : Java.Nio.ByteBuffer * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit

パラメーター

dst
ByteBuffer

バイトの転送先となるバッファー

attachment
Object

I/O 操作にアタッチするオブジェクト。を指定できます null

handler
ICompletionHandler

完了ハンドラー

属性

注釈

このチャネルから特定のバッファーにバイトシーケンスを読み取ります。

このメソッドは、このチャネルから特定のバッファーにバイトシーケンスを読み取る非同期読み取り操作を開始します。 パラメーターは handler 、読み取り操作が完了 (または失敗) したときに呼び出される完了ハンドラーです。 完了ハンドラーに渡される結果は、読み取られたバイト数、または -1 チャネルがストリームの終了に達したためにバイトを読み取ることができなかった場合です。

読み取り操作では、チャネルから最大 r バイトを読み取る場合があります。 ここで、r はバッファーに残っているバイト数、つまり dst.remaining() 読み取りが試行された時点のバイト数です。 r が 0 の場合、読み取り操作は I/O 操作を開始せずに の結果0で直ちに完了します。

長さ n のバイト シーケンスが読み取られたとします。ここで 0 、nbsp&;< nbsp を&します。n <= r. このバイト シーケンスはバッファーに転送され、シーケンスの最初のバイトがインデックス p に、最後のバイトがインデックス p  になるように+ します。 n - nbsp;1&。 ここで、p は読み取りが実行された時点でのバッファーの位置です。 完了すると、バッファーの位置は p  と等しくなります。+ n;その制限は変更されません。

バッファーは複数の同時実行スレッドで安全に使用できないため、操作が完了するまでバッファーにアクセスしないように注意する必要があります。

このメソッドは、いつでも呼び出すことができます。 チャネルの種類によっては、特定の時点で複数の読み取りを未処理にできない場合があります。 以前の読み取り操作が完了する前にスレッドが読み取り操作を開始すると、 ReadPendingException がスローされます。

java.nio.channels.AsynchronousByteChannel.read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>)Java ドキュメント。

このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。

適用対象