Java RandomAccessFile 的内存使用

Java RandomAccessFile's memory usage

我正在尝试从一个非常大的 (>100 GB) ascii 编码文本文件中访问数据(只读)。该文件主要包含坐标(16 位浮点数,包括小数点)和一些其他次要信息(名称等)。

因此我考虑使用 RandomAccessFile 来避免将大量数据加载到内存中。 (例如,我可以将数据行缓存到内存中以加快速度,但让我们将其保存以备后用,并假设时间在这里不是问题,只要它不接近无穷大)。

问题:我可以假设 seek 和 read 方法不会导致 RandomAccessFile 将大量数据加载到内存中吗?

非常感谢。

你是对的。 RandomAccessFile 基本上只是实际文件的包装器,除了当前指针之外没有太多内部状态。所有 read/write 方法都要求您为其提供您自己的数组,数据应加载到该数组中。

另外,这个问题已经有人回答了 Java : Read last n lines of a HUGE file Does RandomAccessFile in java read entire file in memory?