ByteBuffer.Compact メソッド

定義

このバッファーを nbsp; &圧縮します。(省略可能な操作)

[Android.Runtime.Register("compact", "()Ljava/nio/ByteBuffer;", "GetCompactHandler")]
public abstract Java.Nio.ByteBuffer Compact ();
[<Android.Runtime.Register("compact", "()Ljava/nio/ByteBuffer;", "GetCompactHandler")>]
abstract member Compact : unit -> Java.Nio.ByteBuffer

戻り値

このバッファー

属性

例外

このバッファーの内容に変更を加えなくてもかまいません。

注釈

このバッファーを nbsp; &圧縮します。(省略可能な操作)

バッファーの現在位置とその制限 (存在する場合) の間のバイトは、バッファーの先頭にコピーされます。 つまり、インデックス p のバイト =  です。position() はインデックス 0 にコピーされ、インデックス p のバイト + 1 はインデックス 1 にコピーされ、インデックスのバイト limit() -  までコピーされます。1 はインデックス n =  にコピーされます。limit() nbsp;-  を&します。1 nbsp;-  を&します。p. その後、バッファーの位置は n+1 に設定され、その制限はその容量に設定されます。 定義されている場合、マークは破棄されます。

バッファーの位置は 0 ではなくコピーされたバイト数に設定されるため、このメソッドの呼び出しの直後に別の相対 put メソッドを呼び出すことができます。

書き込みが不完全な場合に備えて、バッファーからデータを書き込んだ後にこのメソッドを呼び出します。 たとえば、次のループは、バッファー bufを介してあるチャネルから別のチャネルにバイトをコピーします。

<blockquote>

{@code
              buf.clear();          // Prepare buffer for use
              while (in.read(buf) >= 0 || buf.position != 0) {
                  buf.flip();
                  out.write(buf);
                  buf.compact();    // In case of partial write
              }
            }

</blockquote>

java.nio.ByteBuffer.compact()Java ドキュメント。

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

適用対象