Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:我是否每次想登录时都打开一个文件资源_Java_Android_File Io - Fatal编程技术网

Java Android:我是否每次想登录时都打开一个文件资源

Java Android:我是否每次想登录时都打开一个文件资源,java,android,file-io,Java,Android,File Io,我正在用android写一个文件来做我自己的日志。目前,我调用一个函数,该函数打开一个文件并向其追加一个字符串。然而,我在某个地方读到,每次登录一个文件时,打开它是非常成功的(操作繁重)。这是真的吗?这里有什么选择?我是否应该打开一个文件,并在应用程序运行期间保持打开状态,然后将其附加到文件中?或者你有什么建议 非常感谢您这取决于您正在进行的日志记录量-每秒记录多少日志,大致有多少数据,日志有多重要,等等。如果您每分钟只向文件中放入几次内容,而不是只在主线程上发生,并降低其他内容的速度,那么您可

我正在用android写一个文件来做我自己的日志。目前,我调用一个函数,该函数打开一个文件并向其追加一个字符串。然而,我在某个地方读到,每次登录一个文件时,打开它是非常成功的(操作繁重)。这是真的吗?这里有什么选择?我是否应该打开一个文件,并在应用程序运行期间保持打开状态,然后将其附加到文件中?或者你有什么建议


非常感谢您

这取决于您正在进行的日志记录量-每秒记录多少日志,大致有多少数据,日志有多重要,等等。如果您每分钟只向文件中放入几次内容,而不是只在主线程上发生,并降低其他内容的速度,那么您可能就没事了。如果您确实需要实现更高效的功能,您可能需要尝试一些简单的缓存

您可以保留日志数据的内存缓存,并在日志数据达到一定大小(每100行)或经过一定时间(每5分钟)时将其保存到文件中


如果采用这种方法,请记住覆盖onPause和onDestroy,并确保在离开应用程序之前将缓存的日志数据写入文件,以防用户不回来。

是的,这可能是一项繁重的操作,因为您可能每隔几毫秒或几微秒就要记录一次日志。我有几个选择1)保持文件打开并继续写入2)有一个缓冲区,您可以临时记录邮件并立即将邮件刷新到文件中。感谢您的评论+1Hmm有意义。我经常记录日志,所以我想我们的缓存和写入选项是好的。但是现在我需要弄清楚什么时候写。因为我想在崩溃发生时发送这个文件。我无法预测什么时候会发生车祸。也许让文件打开会让更多的老师使用ACRA。我不想要只有崩溃报告,我需要我的日志,看看是什么条件导致了这样的崩溃。