我的应用程序中有以下代码,它做了两件事:
解析具有“n”个数据的文件。
对于文件中的每个数据,将有两个 Web 服务调用。
public static List<String> parseFile(String fileName) {
List<String> idList = new ArrayList<String>();
try {
BufferedReader cfgFile = new BufferedReader(new FileReader(new File(fileName)));
String line = null;
cfgFile.readLine();
while ((line = cfgFile.readLine()) != null) {
if (!line.trim().equals("")) {
String [] fields = line.split("\\|");
idList.add(fields[0]);
}
}
cfgFile.close();
} catch (IOException e) {
System.out.println(e+" Unexpected File IO Error.");
}
return idList;
}
当我尝试解析具有 100 万行记录的文件时,java 进程在处理一定数量的数据后失败。我有java.lang.OutOfMemoryError: Java heap space
错误。我可以部分地弄清楚由于提供了如此庞大的数据,java进程停止了。请建议我如何处理这些庞大的数据。
编辑:这部分代码是否会new BufferedReader(new FileReader(new File(fileName)));
解析整个文件并受到文件大小的影响。