我有一个String格式的“Arraylist”,其字节数组的精确值如
{ - 119,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0, 0,84,0,0,0,84,8,6,0,0}
我想将它转换回字节数组,看起来像
{ - 119,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0, 0,84,0,0,0,84,8,6,0,0}
但我找不到这样做的方法 我想要这样,所以我可以解码字形数组中的图像,但没有运气
我尝试使用这种方法 “yolo”是我的arraylist,但输出bytearray有不同的值为什么?
ByteArrayOutputStream lp = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(lp);
for (String element : yolo)
{
try
{
out.writeUTF(element);
}catch(IOException e)
{
e.printStackTrace();
}
}
byte myimage[] = lp.toByteArray();
答案 0 :(得分:1)
尝试使用循环遍历每个位置,并对阵列中的每个位置使用Byte.valueof(yolo[position])
,你应该拥有它。
答案 1 :(得分:0)
不要使用ByteArrayOutputStream
它比普通字节数组慢得多。另外foreach比ArrayList
中的正常for循环更慢,这是针对您问题的优化解决方案
int size = yolo.size();
byte[] byteArray = new byte[size];
for (int i = 0; i < size ; ++i)
{
byteArray[i] = Byte.valueOf(yolo.get(i));
}