Java Android:我是否每次想登录时都打开一个文件资源
我正在用android写一个文件来做我自己的日志。目前,我调用一个函数,该函数打开一个文件并向其追加一个字符串。然而,我在某个地方读到,每次登录一个文件时,打开它是非常成功的(操作繁重)。这是真的吗?这里有什么选择?我是否应该打开一个文件,并在应用程序运行期间保持打开状态,然后将其附加到文件中?或者你有什么建议Java Android:我是否每次想登录时都打开一个文件资源,java,android,file-io,Java,Android,File Io,我正在用android写一个文件来做我自己的日志。目前,我调用一个函数,该函数打开一个文件并向其追加一个字符串。然而,我在某个地方读到,每次登录一个文件时,打开它是非常成功的(操作繁重)。这是真的吗?这里有什么选择?我是否应该打开一个文件,并在应用程序运行期间保持打开状态,然后将其附加到文件中?或者你有什么建议 非常感谢您这取决于您正在进行的日志记录量-每秒记录多少日志,大致有多少数据,日志有多重要,等等。如果您每分钟只向文件中放入几次内容,而不是只在主线程上发生,并降低其他内容的速度,那么您可
非常感谢您这取决于您正在进行的日志记录量-每秒记录多少日志,大致有多少数据,日志有多重要,等等。如果您每分钟只向文件中放入几次内容,而不是只在主线程上发生,并降低其他内容的速度,那么您可能就没事了。如果您确实需要实现更高效的功能,您可能需要尝试一些简单的缓存 您可以保留日志数据的内存缓存,并在日志数据达到一定大小(每100行)或经过一定时间(每5分钟)时将其保存到文件中
如果采用这种方法,请记住覆盖onPause和onDestroy,并确保在离开应用程序之前将缓存的日志数据写入文件,以防用户不回来。是的,这可能是一项繁重的操作,因为您可能每隔几毫秒或几微秒就要记录一次日志。我有几个选择1)保持文件打开并继续写入2)有一个缓冲区,您可以临时记录邮件并立即将邮件刷新到文件中。感谢您的评论+1Hmm有意义。我经常记录日志,所以我想我们的缓存和写入选项是好的。但是现在我需要弄清楚什么时候写。因为我想在崩溃发生时发送这个文件。我无法预测什么时候会发生车祸。也许让文件打开会让更多的老师使用ACRA。我不想要只有崩溃报告,我需要我的日志,看看是什么条件导致了这样的崩溃。