我目前正在Swing UI分配中工作.这项工作涉及在JTextArea中显示大文件内容.文件大小可以最大为2 GB.
我最初的想法是从文件中延迟加载内容,例如将向用户显示1 MB的内容.当用户滚动时,我将检索接下来要显示的1 MB内容.所有这些操作将在后台线程(Swing Worker)中进行.
我看了看JTextArea API,方法insert采用String和int(插入位置)作为参数.
这就足够了,但是我担心性能,因为检索到的内容(一次1 MB)必须转换为String对象.
是否有其他解决方法或其他替代/更好的解决方案.
解决方法:
效率问题将在于文档模型中.
解决方法可能是提供有效的自定义Document
实现.
但是,就我个人而言,我将尝试重新考虑并尝试使用其他用户界面.谁还会想滚动浏览2 GB的数据?