Java网络编程从入门到精通(34):读写缓冲区中的数据---使用get和put方法按顺序读写单个数据
2009-10-28 00:00:00 来源:WEB开发网核心提示: 图1 缓冲区的初始状态从图1可以看出,在缓冲区创建之初,Java网络编程从入门到精通(34):读写缓冲区中的数据---使用get和put方法按顺序读写单个数据(3),当前的位置和缓冲区中的数据都为0,当使用如下语句向缓冲区中写入数据后,并用get方法获得位置2的数据:byteBuffer.pos
图1 缓冲区的初始状态
从图1可以看出,在缓冲区创建之初,当前的位置和缓冲区中的数据都为0。当使用如下语句向缓冲区中写入数据后,缓冲区当前状态如图2所示。
byteBuffer.put((byte)2);
byteBuffer.put((byte)-1);
图2 缓冲区的当前状态
当缓冲区的当前位置如图3所示时,使用put和get方法将会抛出上述的BufferOverflowException异常。
图3 当前位置处于缓冲区尾
如果要使用get方法得到缓冲区中的指定数据,必须将缓冲区的当前位置移动到指定的位置,我们可以使用position方法将当前位置移到缓冲区的任何位置。如下面的代码将图3所示的缓冲区的当前位置设为2,并用get方法获得位置2的数据:
byteBuffer.position(2);
System.out.println(byteBuffer.get());
上面的代码将输出3。缓冲区的当前位置为除了使用position方法,也可以使用rewind方法将缓冲区的当前位置设为0,rewind方法的定义如下:
public final Buffer rewind()
更多精彩
赞助商链接