WEB开发网
开发学院软件开发Java Java网络编程从入门到精通(34):读写缓冲区中的... 阅读

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);

Java网络编程从入门到精通(34):读写缓冲区中的数据---使用get和put方法按顺序读写单个数据 

图2  缓冲区的当前状态

当缓冲区的当前位置如图3所示时,使用put和get方法将会抛出上述的BufferOverflowException异常。

Java网络编程从入门到精通(34):读写缓冲区中的数据---使用get和put方法按顺序读写单个数据

图3  当前位置处于缓冲区尾

如果要使用get方法得到缓冲区中的指定数据,必须将缓冲区的当前位置移动到指定的位置,我们可以使用position方法将当前位置移到缓冲区的任何位置。如下面的代码将图3所示的缓冲区的当前位置设为2,并用get方法获得位置2的数据:

byteBuffer.position(2);
System.out.println(byteBuffer.get());

上面的代码将输出3。缓冲区的当前位置为除了使用position方法,也可以使用rewind方法将缓冲区的当前位置设为0,rewind方法的定义如下:

public final Buffer rewind()

上一页  1 2 3 4 5 6  下一页

Tags:Java 网络编程 入门

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接