初识ByteBuffer入门

前言

ByteBuffer是nio/aio编程所必须掌握的一个数据结构,也是掌握tio所必须要学会的基础只是。
设想,如果你不懂Map,List,Set,那么你在编程领域将会一事无成,同样的道理,如果你不懂ByteBuffer,你无法在nio/aio编程领域立足。

初识ByteBuffer

  • byte[] bytes : 用来存储数据
  • int capacity:用来表示bytes的容量,那么可以想象capacity就等于bytes.siez(),此值在初始化bytes后,是不可变的。
  • int limit:用来表示bytes时机装了多少数据,可以容易现象到limit<=capacity,此值是可变动的。
  • int position:用那表示在哪个位置开始往bytes写数据或读数据,此值是可灵活变动的。


    image.png

创建ByteByffer

image.png

image.png

往ByteBuffer中写入数据,观察limit 和 poisuruib的变化

使用put方法即可添加数据到byteBuffer中


image.png

从ButeBuffer中读取数据

对于刚刚写好的bytebuffer,我们读取数据的时候,需要先设置一个position和limit,否则读的位置则不对

        //创建一个 capacity 为6 的ByteBuffer
        ByteBuffer allocate = ByteBuffer.allocate(6);
        allocate.put((byte)1);
        System.out.println(allocate);
        //设置limit为1,那么表示buffter的有效数据长度是1
        allocate.limit(1);
        //设置position到0位置,这样都诗句的时候就从这个位置开始读
        allocate.position(0);
        System.out.println(allocate);
        //get获取一个字节,position 的位置也会随着读取而改变
        byte b = allocate.get();
        System.out.println(allocate);
image.png

文章参考:https://www.t-io.org/doc/tio/83?pageNumber=1

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容