我有包含超过 1kk 个整数的文本文件。我想在常数时间内读取第n个数字。我不允许将所有整数放入数组中。我听说有一种使用字节操作的技术,所以我可以编写方法“getNthInteger(int nth, int elementLengthInBytes)”或类似的东西。请给我引用这个技术,任何帮助都将不胜感激!
最佳答案
将每个整数转换为长度为 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 类型的实际对象。
关于 java 。如何从文本文件中获取恒定的读取时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19082562/