言語

ByteBuffer.Compact メソッド

定義

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

[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

返品

このバッファー

属性

例外

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

注釈

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

バッファーの現在位置とその制限 (存在する場合) の間のバイトがバッファーの先頭にコピーされます。 つまり、インデックス p = position() のバイトです。がインデックス 0 にコピーされます。インデックス p +  のバイト。1 はインデックス 1 にコピーされ、インデックス limit()>-  のバイトまでコピーされます。1 がインデックス n>= limit()にコピーされます>->1>->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ドキュメント。

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

適用対象