ByteBuffer.Compact メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このバッファーを圧縮します (省略可能な操作)。
[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
を介して 1 つのチャネルから別のチャネルにバイトをコピーします。
<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 ドキュメントjava.nio.ByteBuffer.compact()
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。