我有一种方法可以读取和解析非常长的xml文件。将xml文件读入字符串,然后由另一个类解析该字符串。 然而,这会导致Java使用大量内存(约500MB)。通常,程序运行时占用30MB左右,但调用parse()方法后,它会增加到500MB。然而,当parse()运行完毕时,内存使用量不会回到30MB,而是保持在500MB。
我尝试设置s = null并调用System.gc(),但内存使用量仍然保持在500MB。
我尝试设置s = null并调用System.gc(),但内存使用量仍然保持在500MB。
public void parse(){
try {
System.out.println("parsing data...");
String path = dir + "/data.xml";
InputStream i = new FileInputStream(path);
BufferedReader reader = new BufferedReader(new InputStreamReader(i));
String line;
String s = "";
while ((line = reader.readLine()) != null){
s += line + "\n";
}
... parse ...
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
有什么想法吗?
谢谢。
StringBuilder
。 - PM 77-1