作者ntb (錩哥超口愛)
看板java
標題[問題] 想跳掉第一行出現OutOfMemoryError
時間Tue Jun 28 00:22:59 2011
我的程式目的是想將文字檔變成一行字串 (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)
→ IamTD:加大執行時的記憶體配置量?? 查查 -Xmx這個參數 06/28 17:11
→ ntb:其實我有試過~Xmx300m就可以~ 06/29 13:35
→ ntb:但總覺得只是多這一行,就要開到那麼多,有點不解@@ 06/29 14:11
→ ntb:加上怕是自己基本概念不好,所以寫的東西要吃很多記憶體 06/29 14:49