ByteBuffer到int数组(每个字节)

时间:2014-12-17 00:01:54

标签: java arrays

与问题byte array to Int Array相关,但是我想将每个字节转换为int,而不是每个4字节。

是否有比这更好/更清洁的方式:

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;
}

3 个答案:

答案 0 :(得分:2)

我可能更喜欢

int[] array = new int[buffer.capacity()];
for (int i = 0; i < array.length; i++) {
  array[i] = buffer.get(i);
}
return array;

答案 1 :(得分:0)

针对Kotlin程序员。

fun getIntArray(byteBuffer: ByteBuffer): IntArray{
    val array = IntArray(byteBuffer.capacity())
    for (i in array.indices) {
        array[i] = byteBuffer.getInt(i)
    }
    return array
}

答案 2 :(得分:0)

这会产生一个 int 数组:

int[] intArray = byteBuffer.asInBuffer().array()