【问题标题】:Fastest way to read binary into int[] in java?在java中将二进制读入int []的最快方法?
【发布时间】:2015-08-24 23:37:44
【问题描述】:

在java中,将一个巨大的二进制文件读入int[]的最快方法是什么。我看到了这个解决方案

Fastest way to read huge number of int from binary file

但是有两种解决方案,我不知道哪个更好。他们似乎也为 int[] 提供了一个固定的最大大小,但是我如何使用可变大小来做到这一点?就像我如何设置它以完全适合二进制文件中的数据量一样。有没有办法知道文件中有多少个整数?

谢谢

【问题讨论】:

  • 你为什么不两个都试试,自己看看?
  • 我的第二个问题呢?
  • 如果你知道文件有多大,并且你知道一个 int 中有多少字节,你就可以计算出文件中有多少个 int。
  • 假设您没有使用可变长度编码,每个 int 有 4 个字节。所以,整数的数量只是 bytesInTheFile / 4。
  • 新文件(路径).length() / 4?

标签: java binary


【解决方案1】:

您可以使用一些变量来计算两种解决方案中的时间,然后比较两者。

while (bytesRead != -1) {
  double start = System.currentTimeMillis();
   while(doingstuff){}
  double timeTaken = System.currentTimeMillis() - start;
}

对于数组,可以使用可扩展的arraylist。

ArrayList<int> binary = new ArrayList<int>();
binary.add(stuff);

【讨论】:

  • System.nanoTime() 更适合微基准测试。
  • 这应该是评论而不是答案。
猜你喜欢
  • 2021-06-21
  • 2013-04-07
  • 2011-01-03
  • 2020-11-17
  • 2010-12-13
  • 2018-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多