从DataInputStream中读取int[]



我正在寻找一种从DataInputStream读取大量int并将其加载到数组中的方法。我确切地知道我需要读多少int,但如果有一种比简单迭代更干净的方法,那就太好了。

已经有一种方法可以使用字节数组来实现这一点,只需使用DataInputStream#read(byte[])方法,但int[]没有等效方法。很明显,我可以通过创建一个长度乘以4的字节数组将数据读取到字节数组中,但我确实需要int s中的数据。

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

  1. 以某种方式将数据直接加载到int[]
  2. 以某种方式将byte[]转换为int[]
  3. 遍历数组,然后只使用readInt()

虽然前两种解决方案更受欢迎,但我目前还不知道如何做到这两种。有没有简单的方法可以做到这一点而不需要迭代?

这样做的唯一方法似乎是简单的for循环和使用readInt()。这就是我最终选择做的。

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

相关内容

  • 没有找到相关文章

最新更新