我尝试读取Android上另一个应用程序的日志文件。
要读取文件,请使用以下代码:
StringBuilder text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
text.append(line);
text.append('\n');
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
return text.toString();
我有一个循环,它每秒读取一次文件:
while(true) {
Log.i("FileCheckTask", "Log file size: " + mLogFile.length());
SleepSeconds(1);
}
尽管在Android Studio设备文件资源管理器中我可以看到该文件具有34.4 KB,但该循环始终在前10个迭代中写入Log file size: 0
。上面的函数还返回一个空字符串。
经过10次迭代后,文件大小将被正确报告,并且上述函数将读取正确的内容。
为什么会发生这种情况,如何在不等待约10秒的情况下更快地读取文件?