首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从字节转换为byte[] java

无法从字节转换为byte[] java
EN

Stack Overflow用户
提问于 2014-01-14 20:18:21
回答 10查看 3.2K关注 0票数 2

我正在尝试在android中将字节数组转换为图像。我有一个包含所有要转换的字节数组的ArrayList<Byte> arrays;。现在在

代码语言:javascript
复制
byt = (byte[]) arrays.get(0); 

它给了我Cannot cast from Byte to byte[] java异常。

代码语言:javascript
复制
        byte[] byt;
        byt = new byte[4096];
        byt = (byte[]) arrays.get(0) ;
        BufferedImage bImageFromConvert = null;
        InputStream in = new ByteArrayInputStream(byt);

        try {
            bImageFromConvert = ImageIO.read(in);
            SaveImages();

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

我该如何解决这个问题呢?

EN

回答 10

Stack Overflow用户

发布于 2014-02-13 17:11:02

ArrayList不包含Byte[]或byte[]值,但是列表本身可以转换为字节数组,因为它包含单独的字节值

代码语言:javascript
复制
        byte[] bytes = new byte[array.size()];
        for (int i = 0; i < array.size(); i++) {
            bytes[i] = array.get(i);
        }
票数 1
EN

Stack Overflow用户

发布于 2014-01-14 20:22:17

尝试使用ByteArrayOutputStream而不是数组列表,这样会更好。然后使用ByteArrayOutputStream.toByteArray()。

票数 0
EN

Stack Overflow用户

发布于 2014-01-14 20:35:34

ArrayList<Byte> arrays;不包含‘Byte[]’的列表。它是已装箱的Byte对象的单个列表。

您将需要手动执行转换:

代码语言:javascript
复制
 byte[] byteArray = new byte[arrays.size()];

 for (int i=0;i<byteArray.length;i++) {
    byteArray[i] = arrays.get(i);
 }

当Byte被放入数组中时,循环会为您将其拆箱为一个字节。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21113404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档