我在我的应用程序中有以下代码,它会执行两件事情:
解析包含'n'个数据的文件。
对于文件中的每个数据,都会进行两个Web服务调用。
当我尝试解析拥有一百万行记录的文件时,Java进程在处理一定量的数据后就会失败。我遇到了
编辑:这段代码
解析包含'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;
}
当我尝试解析拥有一百万行记录的文件时,Java进程在处理一定量的数据后就会失败。我遇到了
java.lang.OutOfMemoryError: Java heap space
错误。我可以部分地理解由于提供了大量数据而导致Java进程停止运行。请建议我如何处理这么多的数据。编辑:这段代码
new BufferedReader(new FileReader(new File(fileName)));
是否会解析整个文件并受到文件大小的影响?