【发布时间】:2026-01-08 17:10:02
【问题描述】:
我正在尝试从一个非常大 (>100 GB) 的 ascii 编码文本文件中访问数据(只读)。该文件主要包含坐标(16 位浮点数,包括小数点)和一些其他次要信息(名称等)。
因此我考虑使用 RandomAccessFile 来避免将大量数据加载到内存中。 (例如,我可以将数据行缓存到内存中以加快速度,但让我们将其保存以备后用,并假设时间在这里不是问题,只要它不接近无穷大)。
问题:我可以假设 seek 和 read 方法不会导致 RandomAccessFile 将大量数据加载到内存中吗?
非常感谢。
【问题讨论】:
-
如果数据是只读的,您应该使用
DataInputStream包裹BufferedInputStream。你会发现这个速度要快很多倍,唯一的内存开销是BufferedInputStream的缓冲区。 -
@EJP 那大概要多少钱?谢谢!
标签: java randomaccessfile