java.nio.ByteBuffer中flip、rewind、clear方法的區(qū)別
對(duì)緩沖區(qū)的讀寫操作首先要知道緩沖區(qū)的下限、上限和當(dāng)前位置。下面這些變量的值對(duì)Buffer類中的某些操作有著至關(guān)重要的作用:
public final Buffer clear()
{
position = 0; //重置當(dāng)前讀寫位置
limit = capacity;
mark = -1; //取消標(biāo)記
return this;
}

clear方法將緩沖區(qū)清空,一般是在重新寫緩沖區(qū)時(shí)調(diào)用。
public final Buffer flip() {
limit = position;
position = 0;
mark = -1;
return this;
}
反轉(zhuǎn)緩沖區(qū)。首先將限制設(shè)置為當(dāng)前位置,然后將位置設(shè)置為 0。如果已定義了標(biāo)記,則丟棄該標(biāo)記。 常與compact方法一起使用。通常情況下,在準(zhǔn)備從緩沖區(qū)中讀取數(shù)據(jù)時(shí)調(diào)用flip方法。
以上三種方法均使用final修飾,java.nio.Buffer的所有子類均使用同一種flip、clear和rewind機(jī)制。
- limit:所有對(duì)Buffer讀寫操作都會(huì)以limit變量的值作為上限。
- position:代表對(duì)緩沖區(qū)進(jìn)行讀寫時(shí),當(dāng)前游標(biāo)的位置。
- capacity:代表緩沖區(qū)的最大容量(一般新建一個(gè)緩沖區(qū)的時(shí)候,limit的值和capacity的值默認(rèn)是相等的)。
clear方法









clear方法將緩沖區(qū)清空,一般是在重新寫緩沖區(qū)時(shí)調(diào)用。
flip方法






rewind方法
1
public final Buffer rewind() {
2
position = 0;
3
mark = -1;
4
return this;
5
}

2

3

4

5

以上三種方法均使用final修飾,java.nio.Buffer的所有子類均使用同一種flip、clear和rewind機(jī)制。
posted on 2013-06-18 17:32 sdjxsgb 閱讀(21841) 評(píng)論(2) 編輯 收藏