Java NIO(2) Buffer 缓冲器详解

Java NIO

1. Java NIO 基本组件介绍

2. Java NIO 核心组件:Buffer 缓冲器

3. Java NIO 核心组件:Channel 通道

4. Java NIO 核心组件:Selector 选择器,Pipe 管道


Buffer 缓冲器


Java NIO 的 Buffer 由 数据和索引(用于高效访问和操纵数据)组成,这些索引包括4个:
  • mark(标记索引)
  • position(位置索引)
  • limit(限制索引)
  • capacity(容量索引);
这 4 个索引的数值关系 0 <= mark <= position <= limit <= capacity默认的初始化值:0 = position ,limit = capacity

唯一与通道 Channel 进行交互的 Buffer 是 ByteBuffer,其他 Buffer 类似都会转化为 ByteBuffer 之后再与 Channel 进行交互,这些缓冲器类型包括以下:
CharBuffer、DoubleBuffer、IntBuffer、LongBuffer、ShortBuffer、FloatBuffer;

Buffer 常用的 API


ByteBuffer 常用的 API



缓存区的创建,写入,读取(以 ByteBuffer 示例)

 
//直接通过包装字节数组创建 ByteBuffer        
ByteBuffer byteBuffer1 = ByteBuffer.wrap(new byte[]{
           21,23,5,98,123,34,22});
ByteBuffer byteBuffer2 = ByteBuffer.wrap("are you ok".getBytes("UTF-8"));
//创建一个指定容量的空白 ByteBuffer
ByteBuffer byteBuffer = ByteBuffer.allocate(1024);
//向 ByteBuffer 写入数据
byteBuffer.put((byte)12);
byteBuffer.putChar('a');
byteBuffer.putDouble(23.33);
byteBuffer.putLong(23333333333333L);
byteBuffer.put("are you ok?".getBytes("UTF-8"));
//从 ByteBuffer 读取数据

        
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值