2008-10-29 55 views
2

有没有一些库在文件上使用某种光标?我必须阅读大文件,但不能一次全部读入内存。我知道java.nio,但我想使用更高级别的API。Java文件光标

有点背景:我有一个用GWT编写的工具,用于分析提交的xml文档,然后漂亮地打印xml等等。目前我正在将漂亮的打印xml写入临时文件(如果我使用普通字符串,我的lib会给我一个OOMException),但临时文件的大小接近18 megs,我无法承担以18 megs :)

所以我可以有一个小部件只显示一部分的xml(检查这个example),但我需要阅读文件的相应部分。

回答

4

您是否考虑过使用FileChannels(即内存映射文件)?内存映射文件允许您在不将整个文件存入内存的情况下处理大文件。

这里有一个很好的介绍的链接: http://www.developer.com/java/other/article.php/1548681

+0

你打败了我!是的,这是要走的路 – 2008-10-29 13:19:15

0

当你问一个“更高层次的API”定位文件指针,当我不明白。它可能需要控制“光标”的更高级别。如果你想控制,请降低,而不是更高。

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