我试图从非常大(> 100 GB)的ascii编码文本文件中访问数据(只读)。该文件主要包含坐标(16位浮点数,包括小数点)和一些其他次要信息(名称等)。
因此,我考虑使用RandomAccessFile来避免将大量数据加载到内存中。 (例如,我可以将数据行缓存到内存中以加快速度,但让我们将其保存以供日后使用并假设时间不是问题,只要它不接近无穷大)。
问题:我可以假设搜索和读取方法不会导致RandomAccessFile将大量数据加载到内存中吗?
非常感谢。
答案 0 :(得分:1)
你是对的。 RandomAccessFile基本上只是实际文件的包装器,除当前指针外没有太多内部状态。所有读/写方法都要求您为自己的数组提供应加载数据的数据。
此外,这个问题已经回答了 Java : Read last n lines of a HUGE file Does RandomAccessFile in java read entire file in memory?