从DataInputStream中读取int []

时间:2012-08-30 00:07:27

标签: java file-io java-io datainputstream

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

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

我看到它的方式,我可以使用三种可能性:

  1. 以某种方式将数据直接加载到int[]
  2. 以某种方式将byte[]转换为int[]
  3. 遍历数组并使用readInt()
  4. 虽然前两个解决方案更受欢迎,但我目前还不知道如何做到这两种方法。没有迭代,有没有简单的方法可以做到这一点?

2 个答案:

答案 0 :(得分:1)

看起来,执行此操作的唯一方法是使用readInt()进行简单的for循环。这是我最终选择做的。

答案 1 :(得分:0)

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