从 Byte 数组转换为 Int 数组:Java 实用指南122


在许多计算机程序中,我们需要将字节数组转换为整数数组。字节数组通常包含原始数据或来自文件或网络的位流。另一方面,整数数组对于进一步处理和存储更方便。

在 Java 中,有几种方法可以将字节数组转换为整数数组。本指南将介绍最常用和最有效的方法,并提供清晰的代码示例。

方法 1:ByteBuffer

ByteBuffer 是 Java 中用于处理原始字节数据的类。它提供了一个方便的 get() 方法,可以逐个字节地读取字节数组中的数据。
import ;
public class ByteToIntArrayUsingByteBuffer {
public static void main(String[] args) {
// 创建一个字节数组
byte[] bytes = {1, 2, 3, 4, 5};
// 创建一个 ByteBuffer 并指定字节序
ByteBuffer buffer = (bytes).order(ByteOrder.BIG_ENDIAN);
// 创建一个整数数组
int[] ints = new int[ / 4];
// 将字节数组中的每个 4 个字节转换为一个整数
for (int i = 0; i < ; i++) {
ints[i] = ();
}
// 打印整数数组
for (int i : ints) {
(i);
}
}
}

在这个示例中,我们使用 ByteBuffer 来读取字节数组中的数据并将其转换为整数。ByteOrder.BIG_ENDIAN 确保以大端格式读取字节,其中最高有效位存储在数组的开头。

方法 2:DataInput

DataInput 是另一个用于从各种可变长度数据类型读取数据的接口。它提供了 readInt() 方法,可以从字节数组中读取一个整数。
import ;
import ;
import ;
public class ByteToIntArrayUsingDataInput {
public static void main(String[] args) {
// 创建一个字节数组
byte[] bytes = {1, 2, 3, 4, 5};
// 创建一个 ByteArrayInputStream 并包装字节数组
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
// 创建一个 DataInputStream 并包装 ByteArrayInputStream
DataInput dataInput = new DataInputStream(bais);
// 创建一个整数数组
int[] ints = new int[ / 4];
// 将字节数组中的每个 4 个字节转换为一个整数
for (int i = 0; i < ; i++) {
ints[i] = ();
}
// 打印整数数组
for (int i : ints) {
(i);
}
}
}

在这个示例中,我们使用 DataInput 来读取字节数组中的数据并将其转换为整数。ByteArrayInputStream 是一个用于处理字节数组的输入流,而 DataInputStream 是一个 DataInput 的实现,可以读取基本数据类型。

方法 3:循环和位移运算

对于较小的字节数组,我们还可以使用循环和位移运算手动转换数据。这种方法不需要任何附加库,但它可能效率较低。
public class ByteToIntArrayUsingLoopAndShift {
public static void main(String[] args) {
// 创建一个字节数组
byte[] bytes = {1, 2, 3, 4, 5};
// 创建一个整数数组
int[] ints = new int[ / 4];
// 将字节数组中的每个 4 个字节转换为一个整数
for (int i = 0; i < ; i++) {
int result = 0;
for (int j = 0; j < 4; j++) {
int byteValue = bytes[i * 4 + j];
result |= (byteValue & 0xFF) ) 来将每个 4 个字节组装成一个整数。这种方法不需要任何外部库,但对于较大的字节数组来说可能会很慢。

将字节数组转换为整数数组是 Java 编程中一项常见任务。通过遵循本指南中的方法,您可以轻松地完成转换,根据您的特定需求选择最合适的方法。

2024-11-21


上一篇:Java 数据结构:全面指南

下一篇:Java 字符串大小写转换:全面指南