2

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

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

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

4

3 回答 3

4

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

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

于 2008-10-29T13:18:13.940 回答
2

也许java.io.RandomAccessFile对你有用。

于 2008-10-29T13:17:55.237 回答
0

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

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

于 2008-10-29T23:18:40.220 回答