java ByteBuffer和byte 数组相互转换

ByteBuffer类型转换成byte数组?

阅读 29.9k
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;
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题