我已经实现了一个Java Swing Application.In我已经编写了Open File Functionality.I已经尝试了很多方法来读取文件并写入JTextArea(我尝试过append(),setText()和read ()方法也)。但是,它工作到100 MB。如果我想打开超过100 MB的文件它在textarea.append()引发了“内存异常:Java堆空间”。有没有办法追加向JTextArea提供100MB数据或者无论如何都要增加JTextArea的内存容量。请对上述问题提出建议。谢谢。
答案 0 :(得分:0)
可能是Java using up far more memory than allocated with -Xmx的副本,因为您的问题实际上是您的java实例内存不足。 Java可以打开(理论上)任何大小的文件,只要你有可以读取它的内存。
但我建议你一次只读取内存中部分文件。当您完成该部分后,您将继续使用下一个指定数量的文本。
无论如何,对于这个实例,如果这不是常规问题,你可以使用-Xmx800m
,这会让java使用800mb作为堆空间。
如果这是不一次性的事情,那么真的应该只是一次只读取文件的某些部分。 http://www.baeldung.com/java-read-lines-large-file应该让你朝着正确的方向前进。