Java网络编程从入门到精通(34) - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-21
public static void main(String[] args)
{
// 创建缓冲区的四种方式
IntBuffer intBuffer = IntBuffer.allocate(10);
ByteBuffer byteBuffer = ByteBuffer.allocateDirect(10);
CharBuffer charBuffer = CharBuffer.wrap("abcdefg");
DoubleBuffer doubleBuffer = DoubleBuffer.wrap(new double[] { 1.1, 2.2 });
// 向缓冲区中写入数据
intBuffer.put(1000);
intBuffer.put(2000);
System.out.println("intBuffer的当前位置:" + intBuffer.position());
intBuffer.position(1); // 将缓冲区的当前位置设为1
System.out.println(intBuffer.get()); // 输出缓冲区的当前数据
intBuffer.rewind(); // 将缓冲区的当前位置设为0
System.out.println(intBuffer.get()); // 输出缓冲区的当前数据
byteBuffer.put((byte)20);
byteBuffer.put((byte)33);
byteBuffer.flip(); // 将limit设为position,在这里是2
byteBuffer.rewind();
while(byteBuffer.hasRemaining()) // 枚举byteBuffer中的数据
System.out.print(byteBuffer.get() + " ");
while(charBuffer.hasRemaining()) // 枚举charBuffer中的数据
System.out.print(charBuffer.get() + " ");
// 枚举doubleBuffer中的数据
while(doubleBuffer.position() < doubleBuffer.limit())
System.out.print(doubleBuffer.get() + " ");
}
}
运行结果:
注意:如果必须使用缓冲区的大小来读取缓冲区的数据,尽量不要使用capacity,而要使用limit。如尽量不要写成如下的代码:
这是因为当limit比capacity小时,上面的代码将会抛出一个BufferUnderflowException异常。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Java网络编程从入门到精通(34) - 编程入门网的所有评论