将ArrayList String值转换为字节数组

时间:2015-05-10 09:44:15

标签: java android arrays arraylist

我有一个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(); 

2 个答案:

答案 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));
}