◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
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]; }
注意:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。