购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3.3 位置获取与设置

方法int position()的作用:返回此缓冲区的位置。

方法Buffer position(int newPosition)的作用:设置此缓冲区新的位置。

什么是位置呢?它代表“下一个”要读取或写入元素的index(索引),缓冲区的position(位置)不能为负,并且position不能大于其limit。如果mark已定义且大于新的position,则丢弃该mark。

position应用示例如图1-15所示。

图1-15 position应用示例

在图1-13中,position对应的index是3,说明从此位置处开始写入或读取,直到limit结束。

下面用代码来验证position是下一个读取或写入操作的index:

public class Test3 {

public static void main(String[] args) {
    char[] charArray = new char[] { 'a', 'b', 'c', 'd' };
    CharBuffer charBuffer = CharBuffer.wrap(charArray);
    System.out.println("A capacity()=" + charBuffer.capacity() + " limit()=" +
    charBuffer.limit() + " position()="
            + charBuffer.position());
    charBuffer.position(2);
    System.out.println("B capacity()=" + charBuffer.capacity() + " limit()=" +
    charBuffer.limit() + " position()="
            + charBuffer.position());
    charBuffer.put("z");
    for (int i = 0; i < charArray.length; i++) {
        System.out.print(charArray[i] + " ");
    }
}
}

程序运行结果如下: MLA0kxkOi0fi735eTRhShhxVFGJXGPsmoqsT2klYK8ShYubyqEPMwPROXR1hwzjV

A capacity()=4 limit()=4 position()=0
B capacity()=4 limit()=4 position()=2
a b z d
点击中间区域
呼出菜单
上一章
目录
下一章
×