美文网首页
初识ByteBuffer入门

初识ByteBuffer入门

作者: xuanAndJava | 来源:发表于2020-04-01 15:25 被阅读0次

    前言

    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

    相关文章

      网友评论

          本文标题:初识ByteBuffer入门

          本文链接:https://www.haomeiwen.com/subject/oooouhtx.html