Java基础-Bytebuffer

2020-02-26  本文已影响0人  16325

Bytebuffer

对Bytebuffer的使用和api,这里单独记录一下。
包含三个属性:

方法:

操作

这些属性总是满足以下条件:
  0 <= mark <= position <= limit <= capacity

ByteBuffer tbuf = ByteBuffer.allocateDirect(5);
        tbuf.put((byte)0x2F);
        tbuf.put((byte)0x3F);
        tbuf.put((byte)0x4F);
        System.out.println("position:" + tbuf.position()) ;
        System.out.println("limit:" + tbuf.limit()) ;
        System.out.println("capacity:" + tbuf.capacity()) ;

        tbuf.flip();
        System.out.println("position:" + tbuf.position()) ;
        System.out.println("limit:" + tbuf.limit()) ;
        System.out.println("capacity:" + tbuf.capacity()) ;

        System.out.println( tbuf.get()) ;
        System.out.println("position:" + tbuf.position()) ;
        System.out.println("limit:" + tbuf.limit()) ;
        System.out.println("capacity:" + tbuf.capacity()) ;

        tbuf.mark();
        System.out.println("position:" + tbuf.position()) ;
        System.out.println("limit:" + tbuf.limit()) ;
        System.out.println("capacity:" + tbuf.capacity()) ;

        System.out.println( tbuf.get()) ;
        System.out.println("position:" + tbuf.position()) ;
        System.out.println("limit:" + tbuf.limit()) ;
        System.out.println("capacity:" + tbuf.capacity()) ;

        tbuf.reset();
        System.out.println("position:" + tbuf.position()) ;
        System.out.println("limit:" + tbuf.limit()) ;
        System.out.println("capacity:" + tbuf.capacity()) ;

        System.out.println( tbuf.get()) ;

        tbuf.clear();
        System.out.println("position:" + tbuf.position()) ;
        System.out.println("limit:" + tbuf.limit()) ;
        System.out.println("capacity:" + tbuf.capacity()) ;

输出:

position:3
limit:5
capacity:5
position:0
limit:3
capacity:5
47
position:1
limit:3
capacity:5
position:1
limit:3
capacity:5
63
position:2
limit:3
capacity:5
position:1
limit:3
capacity:5
63
position:0
limit:5
capacity:5
上一篇 下一篇

猜你喜欢

热点阅读