web-dev-qa-db-ja.com

ByteBufferをバイト配列に変換java

ByteBufferをbyte []配列に変換する方法を知っている人はいますか? ByteBufferからバイト配列を取得する必要があります。 bytebuffer.hasArrray()を実行すると、noが返されます。私がこれまで見てきた質問はすべて、バイト配列をbyteBufferに変換することですが、他の方法でそれが必要です。ありがとうございました。

29
Powisss

ByteBufferは、バッファから配列にバイトを転送するバルクget(byte[])メソッドを公開します。バッファ内の残りのバイト数に等しい長さの配列をインスタンス化する必要があります。

ByteBuffer buf = ...
byte[] arr = new byte[buf.remaining()];
buf.get(arr);
57
nomis

hasArray()falseを報告する場合、array()を呼び出すと例外がスローされます。

その場合、byte[]のデータを取得する唯一の方法は、byte[]を割り当て、get(byte)または同様の方法でバイトをbyte[]にコピーすることです。

2
Stephen C