【发布时间】:2015-02-22 20:36:34
【问题描述】:
我正在使用 java.io 读取日志文件和 grep 以获取 ERROR/WARN 等...使用
//FileManipulator class
public static List<String> execute(String command) throws IOException{
List<String> output = new ArrayList<String>();
Process process = Runtime.getRuntime().exec(new String[] { "bash", "-c", command });
InputStream input = process.getInputStream();
InputStreamReader isr = new InputStreamReader(input);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null){
output.add(line);
}
input.close();
return output;
}
我在运行时得到了这个例外
Exception in thread "pool-1-thread-1" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOfRange(Arrays.java:2694)
at java.lang.String.<init>(String.java:203)
at java.io.BufferedReader.readLine(BufferedReader.java:349)
at java.io.BufferedReader.readLine(BufferedReader.java:382)
at com.citi.muni.msdc.sanity.util.FileManipulator.execute(FileManipulator.java:220)
at com.citi.muni.msdc.sanity.util.FileManipulator.grepWarnings(FileManipulator.java:300)
所以看起来有些文件可能太大而无法处理,有人可以建议我如何编辑我当前的方法来停止遇到堆问题。
谢谢 SK
【问题讨论】:
标签: java data-structures collections io heap-memory