2015-05-10 2 views
1

у меня есть "Список_массивы" формат струна с точными значениями массива байт, какПреобразовать значение 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, 7 3, 72, 68, 82, 0, 0, 0, 84, 0, 0, 0, 84, 8, 6, 0, 0}

Но я не могу найти способ сделать это I хочу, чтобы я мог декодировать изображение из массива байтов, но не удался

Я попытался использовать этот метод где «yolo» - это мой arraylist, но выход bytearray имеет значения differnet почему?

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

это было бы полезно? http://stackoverflow.com/questions/18571223/how-to-convert-java-string-into-byte –

ответ

1

Попробуйте использовать цикл, чтобы пройти через каждую позицию и использовать Byte.valueof(yolo[position]) для каждой позиции в массиве и вы должны иметь его.

+0

СПАСИБО: ЭТО СДЕЛАЛО РАБОТУ –

0

Не использовать ByteArrayOutputStream это намного, намного медленнее, чем обычный массив байтов. Также Еогеасп медленнее, чем нормальный цикл в ArrayList, это является оптимальным решением для вас проблема

int size = yolo.size(); 
byte[] byteArray = new byte[size]; 
for (int i = 0; i < size ; ++i) 
{ 
    byteArray[i] = Byte.valueOf(yolo.get(i)); 
}