web-dev-qa-db-ja.com

Java-バイト[]からバイト[]

VectorとDataOutputStreamがあります。 Vectorからバイトを書き込む必要があります(toArrayはByte []を返します)が、byte []のみを理解します。 Byte []をbyte []に​​変換する方法は?

16
int_32

Apache Commons lang ライブラリー ArrayUtils クラスで toPrimitive メソッドを使用できますか?

29
tim_yates
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がこの回答に貢献しました:)

9
jacktrades

Vector <Byte>は、バイトを格納するために使用できるのと同じくらい非効率的な構造です。 toByteArray()メソッドを持つより効率的な行ByteArrayOutputStreamを使用することを真剣に検討します。つまり、ベクターを変換するだけでなく、コードから削除します。

2
Peter Lawrey