java - 将 int 数组转换为 byte 数组的最有效方法是什么,反之亦然?

标签 java arrays file-io int byte

我正在寻找将 int 数组转换为 byte 数组的最有效方法,反之亦然。

我想将大量的 int 数组和字符串写入文件,以便我可以高效地读取它们。我认为节省空间和减少阅读时间的最佳方法是将它们存储为 byte我说得对吗?

我阅读了以下链接,但还有更好的方法吗?

Convert integer into byte array (Java)

最佳答案

整数到字节

我认为没有比直接移动字节/位更好或更有效的方法了。

您可能需要遍历 question 中提到的 toBytes(..) 方法你链接:

byte[] toBytes(int i)
{
  byte[] result = new byte[4];

  result[0] = (byte) (i >> 24);
  result[1] = (byte) (i >> 16);
  result[2] = (byte) (i >> 8);
  result[3] = (byte) (i /*>> 0*/);

  return result;
}

像这样:

for (int i = 0; i < integers.length; i++)
{
   bytes[i] = toBytes(integers[i]);
}

字节到整数

对于字节到整数,您可以执行简单的乘法和加法,这可能是最快的。像这样的东西:

for (int i = 0; i < integers.length; i++)
{
   integers[i] = ((int) (bytes[i] << 24)) + ((int) (bytes[i+1] << 16)) + ((int) (bytes[i + 2] << 8)) + ((int) (bytes[i + 3]));
}

另见

关于java - 将 int 数组转换为 byte 数组的最有效方法是什么,反之亦然?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25062451/

相关文章:

java - 将相同的监听器添加到控件/属性是否会为监听器位置分配额外的内存?

java - 检查位置和数据服务是否开启,Android 开发者

android - 保存的位图为黑色

python - 运行时错误 : input() already active - file loop

javascript - 如何将 php 数组转换为 javascript 数组以与 Jquery UI 日期选择器一起使用?

c - 如何将文件的字符保存到字符串或数组中?

java - 识别xtend中的相同部分(基于xtext语法)

java - 避免主要/次要版本与 Java/Maven 依赖项的冲突

PHP 找到两个多维数组中的第一个差异

javascript - 在 JS 对象数组中,我应该使用键来标识每个对象吗?