ByteBuffer bbf = ByteBuffer.allocate(10);
System.out.println("当前索引"+bbf.position());
System.out.println("最大索引位置"+bbf.limit());
System.out.println("能操作索引长度"+bbf.remaining());
System.out.println("缓冲区总长度"+bbf.capacity());
//方式一: 指定容量为10个字节
ByteBuffer allocate = ByteBuffer.allocate(10);
//方式二: 指定数组内容
ByteBuffer wrap = ByteBuffer.wrap("abc".getBytes());
ByteBuffer bbf = ByteBuffer.allocate(10);
for (int i = 0; i < 3; i++) {
bbf.put((byte) i);
}
System.out.println("当前索引 = "+bbf.position());
System.out.println("当前limit = "+bbf.limit());
System.out.println("切换读模式");
bbf.flip();
System.out.println("当前索引 = "+bbf.position());
System.out.println("当前limit = "+bbf.limit());
ByteBuffer bbf = ByteBuffer.allocate(10);
for (int i = 0; i < 3; i++) {
bbf.put((byte) i);
}
System.out.println("当前索引 = "+bbf.position());
System.out.println("当前limit = "+bbf.limit());
System.out.println("切换读模式");
bbf.flip(); //切换读模式
System.out.println("当前索引 = "+bbf.position());
System.out.println("当前limit = "+bbf.limit());
while (bbf.hasRemaining()){
System.out.println(bbf.get());
}
bbf.clear();//切换写模式
System.out.println("切换写模式");
System.out.println("当前索引 = "+bbf.position());
System.out.println("当前limit = "+bbf.limit());
for (int i = 2; i >=0; i--) {
bbf.put((byte) i);
}
System.out.println("3次添加操作后的索引 = "+bbf.position());
System.out.println("3次添加操作后的limit = "+bbf.limit());
bbf.flip();//再次切换读模式,原值已经被替换
while (bbf.hasRemaining()){
System.out.println(bbf.get());
}
当前索引 = 3
当前limit = 10
切换读模式
当前索引 = 0
当前limit = 3
0
1
2
切换写模式
当前索引 = 0
当前limit = 10
3次添加操作后的索引 = 3
3次添加操作后的limit = 10
2
1
0
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) | Powered by Discuz! X3.2 |