[英]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.