情景: 正在从Internet下载文件。应用程序尝试在下载时读取同一文件。该应用程序如何检查此文件是否已在写入模式下打开。
平台: 的Android
答案 0 :(得分:1)
您可以通过轮询修改日期来检查是否正在写入文件。一旦文件没有被修改一段时间,您可能会认为它已经下载了。否则,没有可靠的方法来执行此操作而不读取文件以查看它是否完整。
答案 1 :(得分:0)
我认为问题是,您正在阅读该文件,并且您没有获得end of file
令牌,并且您想知道该文件何时完成,即何时您将获得end of file
令牌。
现在有两种选择:
您知道正在下载文件的进程,在这种情况下,可以与进程同步。这似乎不太可能,因为您可能不知道该文件。它可以是用例中的任何随机文件。
如果不是第一个选项,您只能进行错误处理。可能等待eof
令牌一段t
时间,并且在计时器到期后,再次读取文件的大小,如果它已经增加,则意味着读取更多字节并再次启动相同的计时器进程。缺点是它可能需要无限时间,所以你必须有一些机制来突然间它突然出现。
这个问题似乎没有明确的答案。这完全取决于您的使用案例。 只有选项似乎检查修改日期(如提到@Peter)或在运行时读取文件大小,然后根据您的用例处理它。