我正在寻找将 int
数组转换为 byte
数组的最有效方法,反之亦然。
我想将大量的 int
数组和字符串写入文件,以便我可以高效地读取它们。我认为节省空间和减少阅读时间的最佳方法是将它们存储为 byte
。 我说得对吗?
我阅读了以下链接,但还有更好的方法吗?
最佳答案
整数到字节
我认为没有比直接移动字节/位更好或更有效的方法了。
您可能需要遍历 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/