从Assets文件夹加载xml文件。我得到了OutOfMemoryError。 我使用的代码是
private String convertStreamToString(InputStream is) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + NEW_LINE);
}
reader.close();
} catch (IOException e) {
//do nothing.
} finally {
try {
reader.close();
} catch (IOException e) {
//do nothing.
}
}
reader=null;
return sb.toString();
}
是否有另一种方法可以摆脱这种异常。 如果您发布任何代码将更有帮助。 提前谢谢。
答案 0 :(得分:3)
使用String解析一个大的Xml并不是一个好主意。您应该转向解析器的流式版本。 Google Http Java Client提出了这样一个库:http://code.google.com/p/google-http-java-client
答案 1 :(得分:0)
put line = null;在追加到某人后的while循环中。
答案 2 :(得分:0)
尝试下面
您是否尝试过内置方法将流转换为字符串?它是Apache Commons库的一部分(org.apache.commons.io.IOUtils)。
那么你的代码就是这一行:
字符串总数= IOUtils.toString(inputStream);
可以从这里下载Apache Commons IO库:http://commons.apache.org/io/download_io.cgi