繁体   English   中英

从DataInputStream读取int []

[英]Read an int[] from a DataInputStream

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

仅通过使用DataInputStream#read(byte[])方法,就已经存在使用字节数组执行此操作的方法,但是int[]没有等效的方法。 通过创建长度乘以四的字节数组,显然可以将数据读取到字节数组中,但是我确实需要int s中的数据。

从我的角度来看,我可以使用三种可能性:

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

尽管前两种解决方案是首选,但我目前不知道两种解决方案。 有没有简单的方法可以做到这一点而无需迭代?

看来,做到这一点的唯一方法是简单的for循环和使用readInt() 这就是我最终选择要做的。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM