java.nio.ByteBuffer中flip、rewind、clear方法的区别
對緩沖區(qū)的讀寫操作首先要知道緩沖區(qū)的下限、上限和當(dāng)前位置。下面這些變量的值對Buffer類中的某些操作有著至關(guān)重要的作用:
flip、rewind、clear這三個方法便是用來設(shè)置這些值的。
?
clear方法
?
public?final?Buffer?clear()
{
????position?=?0;?//重置當(dāng)前讀寫位置
????limit?=?capacity;?
????mark?=?-1;??//取消標(biāo)記
????return?this;
}
clear方法將緩沖區(qū)清空,一般是在重新寫緩沖區(qū)時調(diào)用。
flip方法
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ù)時調(diào)用flip方法。
rewind方法
?
1public?final?Buffer rewind()?{
2?position?=?0;
3?mark?=?-1;
4?return?this;
5}
以上三種方法均使用final修飾,java.nio.Buffer的所有子類均使用同一種flip、clear和rewind機制。
總結(jié)
以上是生活随笔為你收集整理的java.nio.ByteBuffer中flip、rewind、clear方法的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于2的补码
- 下一篇: 深入探索并发编程之内存屏障:资源控制操作