【问题标题】:File upload and read文件上传和读取
【发布时间】:2013-10-29 15:58:59
【问题描述】:

目前我正在从本地计算机浏览文件,然后将其复制到我正在读取文件的另一个目录。但是复制过程还没有完成(考虑到文件的大小)并且读取已经开始,所以它失败给我错误,每次我从读取文件中得到错误,它在不同的行。

如何在文件复制完成后才开始读取文件?

有没有办法验证复制的文件是否与原始文件的大小相同?

【问题讨论】:

标签: java file io


【解决方案1】:

不要复制它。 重命名它,当您完成下载并关闭它时。那是原子的。它出现在目标目录的那一刻,它就完成了。不能出现问题。故事结束。

它也是 O(1) 而不是 O(N)。 几亿倍的速度。

【讨论】:

    【解决方案2】:

    我过去这样做的方式是写入复制文件的过程写入“临时”文件,然后在完成文件写入后将文件移动到读取位置。

    所以写入过程将写入 info.txt.tmp。完成后,它将文件重命名为 info.txt。然后读取过程只需要检查 info.txt 的存在 - 它知道如果存在,它已经被完整地写入。

    或者,如果您不喜欢使用奇怪的文件扩展名,您可以让写入过程将 info.txt 写入不同的目录,然后将其移动到读取目录。

    【讨论】:

      猜你喜欢
      • 2015-10-16
      • 1970-01-01
      • 2018-11-25
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多