java 。如何从文本文件中获取恒定的读取时间?

标签 java file-io

我有包含超过 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/

相关文章:

java - 通过创建一个新数组并确保没有发生内存泄漏来扩展 Java 数组

java - Spring Cloud Gateway 的 LDAP 身份验证

c - 如何同步文件移动到存储?

c# - 如何在大型稀疏文件上创建快速高效的文件流写入

java - 使用字符串实现时,合并排序会生成任意顺序

javascript - 防止传递给 JS 代码文件的参数的 XSS

file - 写入大文件的性能问题?

java - 从 Google App Engine 应用程序中读取目录中的所有文件

c++ - Windows 8 : How to read the user documents folder path programmatically (using c )?

java - Struts2 要求用户上传文件验证