Существует Vector и DataOutputStream. Мне нужно записать байты из Vector (toArray возвращает Byte []) в поток, но он понимает только байт []. Как преобразовать Byte [] в байт []?
Java - Byte [] to byte []
Ответ 1
Вы можете использовать метод toPrimitive в Apache Commons lang библиотека ArrayUtils класс?
Ответ 2
byte[] toPrimitives(Byte[] oBytes)
{
byte[] bytes = new byte[oBytes.length];
for(int i = 0; i < oBytes.length; i++) {
bytes[i] = oBytes[i];
}
return bytes;
}
Inverse:
// byte[] to Byte[]
Byte[] toObjects(byte[] bytesPrim) {
Byte[] bytes = new Byte[bytesPrim.length];
int i = 0;
for (byte b : bytesPrim) bytes[i++] = b; // Autoboxing
return bytes;
}
freeone3000 в этом ответе:)
Ответ 3
Вектор <Byte> представляет собой неэффективную структуру, как вы могли бы использовать для хранения байтов. Я бы серьезно подумал об использовании более эффективной строки ByteArrayOutputStream, которая имеет метод toByteArray(). т.е. не просто преобразовать вектор, а удалить его из кода.