Java - 字节[]到byte []

时间:2011-06-21 19:23:07

标签: java byte bytearray

有Vector和DataOutputStream。我需要将Vector中的字节(toArray返回Byte [])写入流,但它只能理解byte []。如何将Byte []转换为byte []?

3 个答案:

答案 0 :(得分:28)

您可以在toPrimitiveApache 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,而是将其从代码中删除。