java ByteBuffer和byte 数组相互转换

ByteBuffer类型转换成byte数组?

回复
阅读 27.1k
2 个回答

你只要看一下源码里的方法就会发现有一个array()方法

public static void main(String[] args) throws UnsupportedEncodingException {

        ByteBuffer byteBuffer = ByteBuffer.allocateDirect(10);
        byteBuffer.put("Test".getBytes("UTF-8"));
        byteBuffer.flip();
        System.out.println(Arrays.toString(conver(byteBuffer)));

        byteBuffer = ByteBuffer.allocate(10);
        byteBuffer.put("Test".getBytes("UTF-8"));
        byteBuffer.flip();
        System.out.println(Arrays.toString(conver(byteBuffer)));
    }


    //必须调用完后flip()才可以调用此方法
    public static byte[] conver(ByteBuffer byteBuffer){
        int len = byteBuffer.limit() - byteBuffer.position();
        byte[] bytes = new byte[len];

        if(byteBuffer.isReadOnly()){
            return null;
        }else {
            byteBuffer.get(bytes);
        }
        return bytes;
    }
推荐问题
宣传栏