java - UnsupportedOperationException 将 byte[] 转换为 float[]

标签 java arrays exception byte buffer

我试图通过将 byte[] 放入 ByteBuffer 将 byte[] 转换为 float[],将其转换为 FloatBuffer (.asFloatBuffer),然后将其转换为一个数组。

private static float[] toFloatArray(byte[] bytes) {
    ByteBuffer buffer = ByteBuffer.wrap(bytes);
    return buffer.asFloatBuffer().array();
}

然而运行:

 byte[] bytes = {14,32,26,21};
          toFloatArray(bytes);

给我一​​个 java.lang.UnsupportedOperationException 在 java.nio.FloatBuffer.array(未知来源)。 我相信文档说错误与缓冲区没有数组支持有关 (???)。

有谁知道如何解决这个问题,或者我应该如何将这个数组转换为 float ?

最佳答案

    private static float[] toFloatArray(byte[] bytes) {
        ByteBuffer buffer = ByteBuffer.wrap(bytes);
        FloatBuffer fb = buffer.asFloatBuffer();

        float[] floatArray = new float[fb.limit()];
        fb.get(floatArray);


        return floatArray;
    }

例如:

     byte[] bytes = {65,-56,0,0 , 65,-56,0,0};
     float[] result = toFloatArray(bytes);   

     //print 25.0 25.0
     System.out.println(Arrays.toString(result));

关于java - UnsupportedOperationException 将 byte[] 转换为 float[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19624161/

相关文章:

java - 如何将我的插入排序代码修复为升序?我的输出顺序错误

javascript - 控制台一次仅打印一个字母,而不是完整的单词

抛出异常后 Angular 2 不更新 View

java - 使用 Java api 的 Elasticsearch

java - 无空 "maps": Is a callback solution slower than tryGet()?

java - 写入 16 位 BufferedImage TYPE_USHORT_GRAY

Javascript-如何突出显示与 HTML 中的表单用户输入文本区域匹配的元素数组

php - 如何在 PHP 文件中的 SQL 查询中添加 PHP

java - 为什么简单的选择查询返回 List<Mymodel> 但在 jpa 中加入查询返回 List<Object>

java - 在 catch block 中抛出异常需要另一个 try catch block