当前位置: 代码迷 >> Java相关 >> 在施用BufferedWriter写字符串的时候出错OutOfMemoryError
  详细解决方案

在施用BufferedWriter写字符串的时候出错OutOfMemoryError

热度:854   发布时间:2013-02-25 21:45:29.0
在使用BufferedWriter写字符串的时候出错OutOfMemoryError
在取MQ的MSG的时候,一个MSG是4M。while里面这样写数据,当接收第一条消息的时候给一个路径,然后直到CONTROL的时候写入。但运行时会报错OutOfMemoryError,哪位帮忙修改一下。或者是每一次都写入,或者是先打开,写一个关闭后再打开,或者其他的办法,谢谢。

if (fileStatus.contains("FIRST")){
fileName = applid.split(" ")[0];
filePath = "d:/test/" + fileName + "_" + GetDate() + ".txt";
xmlText = new String(rawData);
}else if (fileStatus.contains("MIDDLE")){
xmlText = xmlText + new String(rawData);
}else if (fileStatus.equals("LAST")){
xmlText = xmlText + new String(rawData);
}else if (fileStatus.equals("CONTROL")){  
BufferedWriter bw = new BufferedWriter(new FileWriter(filePath));
bw.write(xmlText);  
bw.flush();  
bw.close();
break;
}


------解决方案--------------------------------------------------------
1.用StringBuilder拼接字符串。
2.while 循环里做个统计,每100条写一次文件,之后追加
  相关解决方案