Reputation: 5169
Related to question byte array to Int Array, however I would like to convert each byte to an int, not each 4-bytes.
Is there a better/cleaner way than this:
protected static int[] bufferToIntArray(ByteBuffer buffer) {
byte[] byteArray = new byte[buffer.capacity()];
buffer.get(byteArray);
int[] intArray = new int[byteArray.length];
for (int i = 0; i < byteArray.length; i++) {
intArray[i] = byteArray[i];
}
return intArray;
}
Upvotes: 0
Views: 3621
Reputation: 29867
This produces an int array:
int[] intArray = byteBuffer.asInBuffer().array()
Upvotes: -1
Reputation: 1261
for kotlin programmers..
fun getIntArray(byteBuffer: ByteBuffer): IntArray{
val array = IntArray(byteBuffer.capacity())
for (i in array.indices) {
array[i] = byteBuffer.getInt(i)
}
return array
}
Upvotes: 0
Reputation: 198023
I'd probably prefer
int[] array = new int[buffer.capacity()];
for (int i = 0; i < array.length; i++) {
array[i] = buffer.get(i);
}
return array;
Upvotes: 3