0

我有包含超过 1kk 个整数的文本文件。我想在恒定时间内读取第 n 个数字。我不允许将所有整数放入数组中。我听说有一种使用字节操作的技术,所以我可以编写方法“getNthInteger(int nth, int elementLengthInBytes)”或类似的东西。请给我这个技术的参考,任何帮助表示赞赏!

4

1 回答 1

2

您将每个整数转换为长度为 L 的字节数组,然后将字节写入文件。对于每个整数,L 必须完全相同。然后读取整数 N,从字节 N*L 开始读取 L 个字节。


例如:

您可以使用java.io.RandomAccessFile.writeInt(int)将整数作为 4 个字节写入文件。

您可以通过以下方式读取第 N 个整数:

java.io.RandomAccessFile.seek(n*4);
int i = java.io.RandomAccessFile.readInt();

将 java.io.RandomAccessFile 替换为 java.io.RandomAccessFile 类型的实际对象。

于 2013-09-29T20:00:11.750 回答