如果另一个应用程序在写入模式下打开文件,如何检查Android

时间:2013-06-01 11:04:23

标签: java android

情景: 正在从Internet下载文件。应用程序尝试在下载时读取同一文件。该应用程序如何检查此文件是否已在写入模式下打开。

平台: 的Android

2 个答案:

答案 0 :(得分:1)

您可以通过轮询修改日期来检查是否正在写入文件。一旦文件没有被修改一段时间,您可能会认为它已经下载了。否则,没有可靠的方法来执行此操作而不读取文件以查看它是否完整。

答案 1 :(得分:0)

我认为问题是,您正在阅读该文件,并且您没有获得end of file令牌,并且您想知道该文件何时完成,即何时您将获得end of file令牌。

现在有两种选择:

  1. 您知道正在下载文件的进程,在这种情况下,可以与进程同步。这似乎不太可能,因为您可能不知道该文件。它可以是用例中的任何随机文件。

  2. 如果不是第一个选项,您只能进行错误处理。可能等待eof令牌一段t时间,并且在计时器到期后,再次读取文件的大小,如果它已经增加,则意味着读取更多字节并再次启动相同的计时器进程。缺点是它可能需要无限时间,所以你必须有一些机制来突然间它突然出现。

  3. 这个问题似乎没有明确的答案。这完全取决于您的使用案例。 只有选项似乎检查修改日期(如提到@Peter)或在运行时读取文件大小,然后根据您的用例处理它。