buffer.flip()的用法

此方法位於:java.nio.Buffer Buffer是一個用於特定基本類型數據的容器。 
緩衝區是特定基本類型元素的線性有限序列。除內容外,緩衝區的基本屬性還包括容量(capacity)、限制(limit)和位置(position):

緩衝區的capacity是它所包含的元素的數量。緩衝區的capacity不能爲負並且不能更改。

緩衝區的limit 是第一個不應該讀取或寫入的元素的索引。緩衝區的limit不能爲負,並且不能大於其capacity。

緩衝區的position是下一個要讀取或寫入的元素的索引。緩衝區的位置不能爲負,並且不能大於其limit。對於每個非 boolean 基本類型,此類都有一個子類與之對應。

 

在使用緩衝區進行輸入輸出數據之前,必須確定緩衝區的position,limit都已經設置了正確的值。

 

如果現在想用這個緩衝區進行信道的寫操作,由於write()方法將從position指示的位置開始讀取數據,在limit指示的位置停止,因此在進行寫操作前,先要將limit的值設爲position的當前值,再將position的值設爲0。這個操作可以通過這個flip()方法實現。

flip()使緩衝區爲一系列新的通道寫入或相對獲取 操作做好準備:它將限制設置爲當前位置,然後將位置設置爲0,即上邊的要求(紅色字體表示)。

 

所以,上邊的操作步驟爲:buffer.flip();

out.write(buffer);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章