共用方式為


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() 的位元組會複製到索引零,索引 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 屬性授權中所述的詞彙使用。

適用於