[問題] 合成長字串時出現OutOfMemoryError

看板java作者 (錩哥超口愛)時間14年前 (2011/06/28 00:23), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/4 (看更多)
我的程式目的是想將文字檔變成一行字串 (StringBuffer的物件) 每個檔案的大小約40 mb, 因為第一行的標題不想串入StringBuffer的物件內, 所以想跳掉第一行, 但不知道為什麼少串這行,在執行時反而會發生錯誤。 (若拿掉String str = input.readLine()就可以) import java.io.*; public class Test{ public static void main(String[] args) throws Exception { String file = args[0]; BufferedReader input0 = new BufferedReader(new FileReader(new File(file))); //放欲開啟檔案的檔名 第一行1.txt 第二行2.txt... String str0; while ((str0= input0.readLine()) != null){ BufferedReader input = new BufferedReader(new FileReader(new File(str0))); String str = input.readLine(); 原本想利用這行來跳過標題列 但多這一行就會有錯誤 OutOfMemoryError: Java heap space StringBuffer sb = new StringBuffer(); while ((str = input.readLine()) != null){ sb = sb.append(str); 問題顯示是出現在這 } System.out.println(sb.length()); input.close(); } input0.close(); } } 請板上有經驗的板友前輩不吝賜教 非常感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.25.239.129 ※ 編輯: ntb 來自: 114.25.239.129 (06/28 00:24)

06/28 17:11, , 1F
加大執行時的記憶體配置量?? 查查 -Xmx這個參數
06/28 17:11, 1F

06/29 13:35, , 2F
其實我有試過~Xmx300m就可以~
06/29 13:35, 2F

06/29 14:11, , 3F
但總覺得只是多這一行,就要開到那麼多,有點不解@@
06/29 14:11, 3F

06/29 14:49, , 4F
加上怕是自己基本概念不好,所以寫的東西要吃很多記憶體
06/29 14:49, 4F
文章代碼(AID): #1E2Avf16 (java)
討論串 (同標題文章)
文章代碼(AID): #1E2Avf16 (java)