有Vector和DataOutputStream。我需要将Vector中的字节(toArray返回Byte [])写入流,但它只能理解byte []。如何将Byte []转换为byte []?
答案 0 :(得分:28)
您可以在toPrimitive库Apache Commons lang类中使用ArrayUtils方法吗?
答案 1 :(得分:9)
byte[] toPrimitives(Byte[] oBytes)
{
byte[] bytes = new byte[oBytes.length];
for(int i = 0; i < oBytes.length; i++) {
bytes[i] = oBytes[i];
}
return bytes;
}
逆:
// 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在这个答案中做出了贡献:)
答案 2 :(得分:2)
向量&lt;字节&gt;就像你可以用来存储字节一样低效的结构。我会认真考虑使用更高效的行ByteArrayOutputStream,它有一个toByteArray()方法。即,不要只转换Vector,而是将其从代码中删除。