保持文件编写器始终打开是否可以?

时间:2017-07-13 16:57:20

标签: java android performance android-file

我读到打开和关闭文件编写器可能会有点繁重的操作。那么可以一直打开文件写入器吗?

2 个答案:

答案 0 :(得分:2)

通过保持开放,您可能不得不担心CommonsWare在您的问题评论中指出的诚信。我这样做的唯一原因是减少打开正确的时间?这不是必需的时间,因此从安全角度来看,当您完成写入文件并在需要时重新打开而不是在您的生命周期中保持打开状态时关闭它会更好应用程序。

答案 1 :(得分:2)

如果"所有的时间"意味着你的程序持续时间,然后答案是。关闭文件编写器的目的是确保写入文件的所有数据都写入文件。写入时,会采取优化措施使I / O过程更快,因此操作系统通常会写入请求并将其写入缓存或缓冲区,然后当缓冲区已满时,它将批量写入所有内容将文件作为一个I / O,而不是可能的数百个。关闭文件编写器会通过告诉操作系统将缓冲区写入文件来刷新此缓冲区,即使它可能未满。在大多数情况下,退出程序会自动关闭任何读者/作者打开,但最好明确写出关闭行,因为显式总是优于隐式。

这并不是作家所做的全部关闭,但这是这样做的主要原因。关闭编写器也会终止对该文件打开的通道,因此出于安全考虑,您应该在不使用时关闭编写器。调用open / close的唯一原因是昂贵的,因为你这样做是做I / O.因此,如果您可以消除呼叫(即在循环内而不是在循环内呼叫打开/关闭)这将是有益的,但不要觉得您需要一个开放和一个关闭该作者的使用寿命时间