2008-10-29 61 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爲例。