package com.itcast.File;
import java.nio.ByteBuffer;
/**NIO 字节缓冲区
- @author wangqiang
- @version V1.0
- @date 2019/2/16 18:40
*/
public class NIODemo {
public static void main(String[] args) {
//创建一个字节缓冲区,申请内存空间为8个字节
ByteBuffer byteBuffer = ByteBuffer.allocate(8);
System.out.println(“position=”+byteBuffer.position());
System.out.println(“limit=”+byteBuffer.limit());
System.out.println(“capacity=”+byteBuffer.capacity());
//向缓冲区中添加数据
byteBuffer.put((byte)10);
byteBuffer.put((byte)20);
byteBuffer.put((byte)30);
byteBuffer.put((byte)40);
System.out.println("----------");
System.out.println(“position=”+byteBuffer.position());
System.out.println(“limit=”+byteBuffer.limit());
System.out.println(“capacity=”+byteBuffer.capacity());
System.out.println("----------");
//缓冲区的反转(截取当前数组的长度)拿到当前元素的位置信息
byteBuffer.flip();
System.out.println(“position=”+byteBuffer.position());
System.out.println(“limit=”+byteBuffer.limit());
System.out.println(“capacity=”+byteBuffer.capacity());
//告知当前位置和限制之间是否有元素(当前位置是0)
if(byteBuffer.hasRemaining()){
for(int i=0;i<byteBuffer.remaining();i++){
byte b = byteBuffer.get(i);
System.out.println(b);
}
}
}
}