我正在使用StringBuilder,讀取文件的每個推文並在將其過濾到另一個文件後進行編寫。我也在每個循環結束時刷新我的StringBuilder。我在2012年中期的8GB RAM mac視網膜上。我無法處理5GB文本文件,同時得到此錯誤?
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2367)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:535)
at java.lang.StringBuffer.append(StringBuffer.java:322)
at java.io.BufferedReader.readLine(BufferedReader.java:363)
at java.io.BufferedReader.readLine(BufferedReader.java:382)
at Parser.main(Parser.java:52)
Post你的代碼看起來並不像你正在刷新你的'StringBuffer',對於5GB,你可能需要暫時的三倍:你的近5GB的緩衝區可以調整大小爲10GB,所以它可以達到15GB (假設增長因子爲2) – maaartinus
檢查該主題以分配更多內存 http://stackoverflow.com/questions/2610194/how-can-i-give-eclipse-more-memory-than-512m – fasadat
該代碼已發佈。 – user3575840