标签:1.4 观察 变量 int none 设置 mono 需要 2017年
byteBuffer.position(0); //设置position到0位置,这样读数据时就从这个位置开始读
byteBuffer.limit(1); //设置limit为1,表示当前bytebuffer的有效数据长度是1
我们看一下,设置position和limit后,bytebuffer的内部变化接下来,我们就可以读取刚才写入的数据了
byte bs = byteBuffer.get();
ByteBuffer allByteBuffer = ByteBuffer.allocate(allBytebufferCapacity);
byte[] dest = allByteBuffer.array();
for (ByteBuffer byteBuffer : byteBuffers) {
if (byteBuffer != null) {
int length = byteBuffer.limit();
int position = allByteBuffer.position();
System.arraycopy(byteBuffer.array(), 0, dest, position, length);
allByteBuffer.position(position + length);
}
}
注意:如果DirectBuffer并不能用System.arraycopy来代替get(byte[], int, int),因为这货的内部实现不是byte[]的
import java.nio.ByteBuffer;
/**
* @author tanyaowu
* 2017年5月1日 上午9:00:50
*/
public class Ts {
/**
*
* @author: tanyaowu
*/
public Ts() {
}
/**
* @param args
* @author: tanyaowu
*/
public static void main(String[] args) {
ByteBuffer byteBuffer = ByteBuffer.allocate(6);
byteBuffer.put((byte)3);
byteBuffer.position(0); //设置position到0位置,这样读数据时就从这个位置开始读
byteBuffer.limit(1); //设置limit为1,表示当前bytebuffer的有效数据长度是1
byte bs = byteBuffer.get();
System.out.println(byteBuffer);
}
}
标签:1.4 观察 变量 int none 设置 mono 需要 2017年
原文地址:http://www.cnblogs.com/zhangboyu/p/7452587.html