ByteBuffer 缓冲器(一)

来源:互联网 发布:多重网络怎么解决 编辑:程序博客网 时间:2024/06/03 17:48

public staticvoid main(final String[]args) {

        ByteBuffer byteBuffer = ByteBuffer.allocate(10);

        System.out.println("初始位置:" +byteBuffer.position());

        System.out.println("初始限度:" +byteBuffer.limit());

        System.out.println("初始容量:" +byteBuffer.capacity());

        System.out.println();

        byteBuffer.put((byte) 6);

        byteBuffer.put((byte) 66);

        byteBuffer.put((byte) 666);

        byteBuffer.put((byte) 6666);

        System.out.println("设值后位置:" +byteBuffer.position());

        System.out.println("设值后限度:" +byteBuffer.limit());

        System.out.println("设值后容量:" +byteBuffer.capacity());

        System.out.println();

        /**

         * flip()函数

         * limit 设为当前position, position 设为0;

         */

        byteBuffer.flip();

        System.out.println("flip后位置:" +byteBuffer.position());

        System.out.println("flip后限度:" +byteBuffer.limit());

        System.out.println("flip后容量:" +byteBuffer.capacity());

        System.out.println();

        /**

         * rewind()函数

         * position 设为0,取消所有mark (标记)

         */

        byteBuffer.rewind();

        System.out.println("rewind后位置:" +byteBuffer.position());

        System.out.println("rewind后限度:" +byteBuffer.limit());

        System.out.println("rewind后容量:" +byteBuffer.capacity());

        System.out.println();

        /**

         * clear()函数

         * position 设为0limit设为capacity,取消所有mark

         * 将状态参数恢复到原始值,但buffer内的值并不改变。

         */

        byteBuffer.clear();

        System.out.println("clear后位置:" +byteBuffer.position());

        System.out.println("clear后限度:" +byteBuffer.limit());

        System.out.println("clear后容量:" +byteBuffer.capacity());

        System.out.println();

        byteBuffer.position();//取出现在的位置

        byteBuffer.position(3);//设置现在的位置

        byteBuffer.limit();//取出现在的限度

        byteBuffer.limit(6);//设置现在的限度

        byteBuffer.capacity();//取出现在的容量

        byteBuffer.capacity(1);//容量在初始时设定,无法在修改;

    }

========================================== End ========================================

0 0