我编写了一个 JavaFx 应用程序来查看日志文件。每个文件都在一个新选项卡中打开,我浏览了文本并将其添加到列表视图中。我创建了一个 cellfactory 来突出显示列表文件中的某些文本,这一切正常。
问题是日志文件在 800-1300Mb 之间。一次打开 3-4 并且 JVM 达到了它的内存限制。
是否有另一种方法可以使当前仅显示在内存列表视图中的文本,并且当我滚动时将更多内容加载到内存中?
我需要能够使用滚动条滚动。我搜索了谷歌,我发现了很多相同的问题。人们想在几年前用 Java(In Swing)显示大型文本 1-10Gb 文件,但没有答案:
- http://www.dreamincode.net/forums/topic/224430-reading-in-large-text-files1gb-10gb-java-swing/
- http://www.javaprogrammingforums.com/awt-java-swing/9577-diplay-large-text-jtextarea-2gb.html
- http://www.dreamincode.net/forums/topic/224430-reading-in-large-text-files1gb-10gb-java-swing/
我看了一下分页,但我需要能够使用滚动条,而且我需要它。用户不应该知道某些部分不在内存中。他们滚动并显示下一行。
有没有人在 Java(Swing 或 JavaFX)中找到解决方案?