IReadableByteChannel.Read(ByteBuffer) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このチャネルから特定のバッファーにバイト シーケンスを読み取ります。
[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)I", "GetRead_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IReadableByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public int Read(Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)I", "GetRead_Ljava_nio_ByteBuffer_Handler:Java.Nio.Channels.IReadableByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Read : Java.Nio.ByteBuffer -> int
パラメーター
- dst
- ByteBuffer
バイトの転送先となるバッファー
返品
チャネルがストリームの終了に達した場合に読み取られたバイト数、場合によっては 0 バイト、または-1
- 属性
例外
読み取り中に別のスレッドがチャネルを閉じる場合。
操作の進行中に別のスレッドが呼び出し元のスレッドを中断した場合。 呼び出し元スレッドの割り込み状態が設定され、チャネルが閉じられます。
チャネルが閉じている場合は 。
別の I/O エラーが発生します。詳細はメッセージに含まれています。
チャネルが読み取り用に開かれていた場合は 。
注釈
このチャネルから特定のバッファーにバイト シーケンスを読み取ります。
チャネルから 最大 r バイトまでの読み取りが試行されます。 ここで、r はバッファーに残っているバイト数(つまり、 dst.remaining())、このメソッドが呼び出された時点です。
長さ n のバイト シーケンスが読み取られたとします。ここで、 0><= n <= r. このバイト シーケンスはバッファーに転送されるため、シーケンスの最初のバイトはインデックス p にあり、最後のバイトはインデックス p にあります。+ n - 1。 p は、このメソッドが呼び出された時点でのバッファーの位置です。 返されると、バッファーの位置は p + n;その制限は変更されません。
読み取り操作はバッファーを埋めず、実際にはバイトをまったく読み取らない可能性があります。 そうするかどうかは、チャネルの性質と状態によって異なります。 たとえば、非ブロッキング モードのソケット チャネルでは、ソケットの入力バッファーからすぐに使用できるバイト数を超えるバイトを読み取ることはできません。同様に、ファイル チャネルは、ファイルに残っているバイト数を超えるバイトを読み取ることはできません。 ただし、チャネルがブロッキング モードで、バッファーに残り少なくとも 1 バイトがある場合、このメソッドは少なくとも 1 バイトが読み取られるまでブロックすることが保証されます。
このメソッドはいつでも呼び出すことができます。 ただし、別のスレッドがこのチャネルで既に読み取り操作を開始している場合、このメソッドの呼び出しは、最初の操作が完了するまでブロックされます。
java.nio.channels.ReadableByteChannel.read(java.nio.ByteBuffer)の Java ドキュメント。
このページの一部は、Androidオープンソースプロジェクトによって作成および共有された作業に基づく変更でありCreative Commons 2.5属性ライセンスに記載されている条件に従って使用されます。