Java文件光标

时间:2008-10-29 13:13:48

标签: java performance file file-io

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

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

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

3 个答案:

答案 0 :(得分:4)

您是否看过使用FileChannels(即内存映射文件)?内存映射文件允许您操作大文件而无需将整个文件放入内存。

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

答案 1 :(得分:2)

也许java.io.RandomAccessFile对您有用。 请参阅:http://java.sun.com/j2se/1.4.2/docs/api/java/io/RandomAccessFile.html

答案 2 :(得分:0)

我不明白在定位文件指针时何时要求“更高级别的API”。它是控制“光标”所需的更高级别。如果你想要控制,那就去低,而不是更高。

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