ByteBuffer 的三个属性
position
limit
capacity
buffer的一般使用过程
// 1.分配空间
// 2.写入数据到Buffer
// 3.调用filp()方法
// 4.从Buffer中读取数据
// 5.调用clear()方法或者compact()方法
public static void main(String[] args) { ByteBuffer byteBuffer = ByteBuffer.allocate(1024); //写入数据 byteBuffer.put("Hello,world".getBytes()); System.out.println("remaining : "+byteBuffer.remaining()); System.out.println("position : "+byteBuffer.position()); //读取数据 byteBuffer.flip(); byte [] dst = new byte[11]; byteBuffer.get(dst); System.out.println(new String(dst)); }
flip是将position 设置为0,limit设置为position, 准备从buffer中读取数据