文件上传和阅读

时间:2013-10-29 15:58:59

标签: java file io

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

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

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

2 个答案:

答案 0 :(得分:1)

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

它也是 O(1)而不是 O(N)。 Gazzilions的次数一样快。

答案 1 :(得分:0)

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

因此写入过程将写入info.txt.tmp。完成后,它会将文件重命名为info.txt。然后阅读过程只需要检查info.txt的存在 - 它知道如果它存在,它已被完全写入。

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