2011-06-21 17 views
16

VectorおよびDataOutputStreamがあります。私は、ベクトル(toArrayはByte []を返す)からストリームにバイトを書き込む必要がありますが、バイト[]のみを理解しています。バイト[]をバイト[]に変換するには?Java - Byte []からbyte []

+2

に貢献しました。 '' Byte [] ''の文字列' toLowerCase() 'を呼び出していることに気付くかもしれません。ええ、私はそれを説明することによって、ジョークを台無しにしたことを知っています。 – Oded

+0

@Odedのジョークの説明自体は面白いです:) – Atreys

答えて

1

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

+1

私の唯一の主張は、ByteArrayOutputStreamへの書き込みは、OutputStreamから継承する以外の本当の理由がないのに 'try {} catch(){}'を必要とすることです。 – Huckle

+0

これは答えではなく、質問に対する興味深いコメントだと思います。 –

+0

@TomasVinter私にとっては、時には最高の答えは、そうではなく、代わりにこれを行うことです。つまり、悪い考えを悪化させているだけです。 ;) –

8
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は@Nickが冗談を言っているこの答え:)