2

我正在寻找一种从 DataInputStream 读取大量整数并将它们加载到数组中的方法。我确切地知道我需要阅读多少ints,但是如果有一种比简单迭代更简洁的方法会很好。

已经有一种方法可以使用字节数组执行此操作,只需使用该DataInputStream#read(byte[])方法,但没有等效的int[]. 我显然可以通过创建一个长度乘以四的字节数组将数据读入一个字节数组,但我确实需要ints 中的数据。

在我看来,我可以使用三种可能性:

  1. 不知何故,将数据直接加载到int[].
  2. 以某种方式将 abyte[]转换为int[].
  3. 遍历数组并使用readInt().

虽然前两种解决方案更受欢迎,但我目前也不知道有什么办法。有没有简单的方法可以在没有迭代的情况下做到这一点?

4

2 回答 2

1

看起来这样做的唯一方法是一个简单的 for 循环和使用readInt(). 这就是我最终选择做的事情。

于 2012-09-16T17:55:12.817 回答
0

您可以尝试使用 a ByteBuffer,它能够将数据留在操作系统内存中,因此读取速度非常快。它还有一个getInt()方法,应该允许您直接读取整数并将它们放入您的数组中。

于 2012-08-30T00:21:32.323 回答