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()
的位元組會複製到索引零,索引 p + 的位元組;1 會複製到索引一,依此類推,直到 index limit()
- 的位元組為止;1 會複製到索引 n = limit()
- 1
- p. 緩衝區的位置接著會設定為 n+1 ,並將其限制設定為容量。 如果已定義,則會捨棄標記。
緩衝區的位置會設定為複製的位元組數目,而不是設定為零,如此一來,這個方法的調用就可以緊接著另一個相對 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 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。