java - 在 Android 中将 Stream 转换为 String 时出现 OutOfMemoryError

标签 java android out-of-memory bufferedreader

我正在从 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();
}

有没有其他方法可以摆脱这个异常。 如果您发布任何代码,将会更有帮助。 提前致谢。

最佳答案

使用字符串来解析大的 Xml 并不是一个好主意。您应该转向解析器的流式版本。 Google Http Java Client 提出了这样一个库:http://code.google.com/p/google-http-java-client

关于java - 在 Android 中将 Stream 转换为 String 时出现 OutOfMemoryError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13697399/

相关文章:

java - 使用 Intent.createChooser 并收到错误 : Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag

java - 使用 java dataflow-sdk 1.9.1 和 hbase 1.0.0 时,JVM 在退出时挂起(但对于以前的 hbase 库则不会)

java - Android十进制格式化,如何根据不同的指数值进行十进制格式化?

android - 为什么这个 Android View 不能垂直填满屏幕?

python - np.hstack() 中的内存错误

android如何避免这种内存不足错误

java - ConstraintLayout View 大小 - 与父级的比例

java - 如何将单个或多个附件附加到 CouchbaseLite 文档 - Android?

java - 数据库的 SQLiteConnection 对象被泄露!请修复您的应用程序

c# - 使用 GC.AddMemoryPressure() 防止 OutOfMemoryException?