我正在尝试在android中将字节数组转换为图像。我有一个包含所有要转换的字节数组的ArrayList<Byte> arrays;。现在在
byt = (byte[]) arrays.get(0); 它给了我Cannot cast from Byte to byte[] java异常。
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();
}我该如何解决这个问题呢?
发布于 2014-02-13 17:11:02
ArrayList不包含Byte[]或byte[]值,但是列表本身可以转换为字节数组,因为它包含单独的字节值
byte[] bytes = new byte[array.size()];
for (int i = 0; i < array.size(); i++) {
bytes[i] = array.get(i);
}发布于 2014-01-14 20:22:17
尝试使用ByteArrayOutputStream而不是数组列表,这样会更好。然后使用ByteArrayOutputStream.toByteArray()。
发布于 2014-01-14 20:35:34
ArrayList<Byte> arrays;不包含‘Byte[]’的列表。它是已装箱的Byte对象的单个列表。
您将需要手动执行转换:
byte[] byteArray = new byte[arrays.size()];
for (int i=0;i<byteArray.length;i++) {
byteArray[i] = arrays.get(i);
}当Byte被放入数组中时,循环会为您将其拆箱为一个字节。
https://stackoverflow.com/questions/21113404
复制相似问题