繁体   English   中英

用Java读取文件时发生内存泄漏

[英]Memory leak when reading a file in Java

我有一个54,120字节的JSON文件,它全部放在一行上

我正在尝试使用以下方法在Android应用程序中将其读取为字符串:

//Method from class FileManager
public String readInternalFile(String filename) throws IOException {
        Log.d(getClass().getName(),"Reading Internal File: " + filename);

        // Open file
        FileInputStream fIS = context.openFileInput(filename);
        Log.d(getClass().getName(),"File is " + fIS.available() + " bytes");

        // Process file
        String s = "";
        int ch;
        while ((ch = fIS.read()) != -1) {
            s += (char) ch;
        }

        //Close InputStream
        if(fIS!= null){
            fIS.close();
        }
        Log.d(getClass().getName(),"File is " + s.length() + " characters long");
        return s;
}

当我在JUnit测试应用程序或仿真器中运行此命令时,会看到一堆Log文本,用于垃圾收集器:

记录数据

这似乎永远不会结束,并且正在减慢我的应用程序的速度。 有没有办法我可以阅读这不会导致此?

如果有帮助,可以在此处访问JSON文件。 这只是新闻提要。

解决此问题的方法是先将JSON文件格式化为带有新行和缩进的“ 漂亮打印 ”样式,然后使用带有readLine()BufferedReader

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM