3 种方法可将 Java 字节数组转换为 int 数组:使用 ByteBuffer 将字节数组转换为 int 数组。使用 DataInputStream 将字节数组包装为输入流,然后从中读取 int 值。如果字节数组长度为 4 的倍数,可手动转换字节为 int 值。

如何将 Java 字节数组转换为 int 数组
方法 1:使用 ByteBuffer
ByteBuffer 是 Java 中用于处理原始数据的类。我们可以使用它来将字节数组转换为 int 数组:
byte[] bytes = {1, 2, 3, 4, 5};
ByteBuffer buffer = ByteBuffer.wrap(bytes);
int[] ints = new int[bytes.length / 4];
buffer.asIntBuffer().get(ints);方法 2:使用 DataInputStream
立即学习“Java免费学习笔记(深入)”;
DataInputStream 提供了一种将基本数据类型从输入流中读取为原始数据类型的方法。我们可以将字节数组包装为输入流,然后使用 DataInputStream 从中读取 int 值:
byte[] bytes = {1, 2, 3, 4, 5};
InputStream is = new ByteArrayInputStream(bytes);
DataInputStream dis = new DataInputStream(is);
int[] ints = new int[bytes.length / 4];
for (int i = 0; i < ints.length; i++) {
ints[i] = dis.readInt();
}方法 3:手动转换
如果字节数组的长度是 4 的倍数,我们可以手动将字节转换为 int 值:
byte[] bytes = {1, 2, 3, 4, 5, 6, 7, 8};
int[] ints = new int[bytes.length / 4];
for (int i = 0; i < bytes.length / 4; i++) {
ints[i] = (bytes[4 * i] << 24) | (bytes[4 * i + 1] << 16) | (bytes[4 * i + 2] << 8) | bytes[4 * i + 3];
}注意:
- 如果字节数组的长度不是 4 的倍数,则使用以上方法时会抛出异常。
- 对于大型字节数组,使用 ByteBuffer 的方法可能更有效率。











