Java文件游标

Java文件游标,java,performance,file,file-io,Java,Performance,File,File Io,是否有用于在文件上使用某种光标的库?我必须读大文件,但我负担不起一次将它们全部读入内存。我知道java.nio,但我想使用更高级别的API 有一点背景:我有一个用GWT编写的工具,它分析提交的xml文档,然后漂亮地打印xml,以及其他东西。目前,我正在将打印精美的xml写入一个临时文件(如果我使用纯字符串,我的lib将抛出一个OOMException),但是临时文件的大小接近18兆,我无法用18兆响应GWT RPC:) 因此,我可以使用一个小部件来仅显示xml的一部分(选中此项),但我需要读取文

是否有用于在文件上使用某种光标的库?我必须读大文件,但我负担不起一次将它们全部读入内存。我知道java.nio,但我想使用更高级别的API

有一点背景:我有一个用GWT编写的工具,它分析提交的xml文档,然后漂亮地打印xml,以及其他东西。目前,我正在将打印精美的xml写入一个临时文件(如果我使用纯字符串,我的lib将抛出一个OOMException),但是临时文件的大小接近18兆,我无法用18兆响应GWT RPC:)


因此,我可以使用一个小部件来仅显示xml的一部分(选中此项),但我需要读取文件的相应部分。

可能对您有用。

您是否看过使用文件通道(即内存映射文件)的情况?内存映射文件允许您在不将整个文件放入内存的情况下操作大型文件

这里有一个好的介绍链接:

我不明白在定位文件指针时,您要求“更高级别的API”。可能需要控制“光标”的是更高的级别。如果你想要控制,就降低而不是升高


我确信,较低级别的Java io类允许您将自己定位在任何大小的文件中的任何位置,而无需在需要之前将任何内容读入内存。我知道我以前做过。以RandomAccessFile为例。

对于OP使用的大文件,java.nio是一个不错的选择。