ByteBuffer的使用方法
- 通过Channel把数据写入到ByteBuffer
- 调用flip()切换到读模式
- 从ByteBuffer读取数据,例如:buffer.get();
- 调用clear()或者compact()切换到写模式
- 重复1-4步骤
注:可结合代码部分去理解
ByteBuffer的内部结构
ByteBuffer有三个重要属性:
- capacity(容量)
- position(指针)
- limit(读/写限制)
- 创建缓冲区:

- 写入到缓冲区

- 切换成读模式


- 通过clear()切换成写模式

- 通过compact()切换成写模式

代码
public static void main(String[] args) {
try(FileChannel channel = new FileInputStream("data.txt").getChannel()){
//准备缓冲区
ByteBuffer buffer = ByteBuffer.allocate(10);
//从channel读取数据到buffer
while(true){
int len = channel.read(buffer);
if(len == -1){ //如果len == -1 说明buffer中的内容已经读取完毕
break;
}
//打印buffer的内容
buffer.flip(); //切换至读模式
while (buffer.hasRemaining()){
byte b = buffer.get(); //读取一个字节
System.out.println((char)b);
}
buffer.clear();//切换到写模式
}
}catch (IOException e){
}
}
版权声明:本文为qq_35238590原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。