是否有一些库在文件上使用某种光标?我必须阅读大文件,但无法将它们全部读入内存。我知道java.nio,但我想使用更高级别的API。
一点背景:我有一个用GWT编写的工具,它分析提交的xml文档,然后漂亮地打印xml等等。目前我正在将漂亮的打印xml写入临时文件(如果我使用普通字符串,我的lib会给我一个OOMException),但临时文件的大小接近18兆,我不能用18响应GWT RPC megs:)
所以我可以让一个小部件只显示xml的一部分(检查这个example),但是我需要读取文件的相应部分。
答案 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作为一个例子。