FileUtils.copyFile对于大文件失败

时间:2013-08-27 13:36:15

标签: java large-files ioerror fileutils

我有一个简单的Java应用程序试图通过WAN复制文件(从爱尔兰到纽约)。

我最近将其修改为使用FileUtils,因为本机Java文件副本太慢了。我研究并发现因为Fileutils使用NIO它更好。文件副本现在工作得很好但偶尔我需要复制非常大的文件(> 200Mb)并且副本失败并出现错误:

java.io.IOException: Failed to copy full contents from...

我知道错误意味着目标文件大小与源不一样,所以最初我认为这是网络问题。该过程会反复尝试每隔几个小时复制一次该文件,但它永远不会成功。但是,当我通过Windows浏览器手动复制文件时,它工作正常。这似乎排除了网络...但我不太确定。

我搜索过但找不到任何完全相同问题的帖子。任何帮助将不胜感激。

谢谢!

增加:
我正在使用这个FileUtils方法:

public static void copyFile(java.io.File srcFile, java.io.File destFile) throws java.io.IOException

1 个答案:

答案 0 :(得分:3)

所以我发现问题出在目标文件夹中。有一个轮询过程,假设在复制后拾取文件。但是,文件在复制完成之前已被移动。这可能不会发生在Windows驱动器上,因为文件将被锁定(我在本地测试,我无法在文件复制时删除)。但是,目标文件夹是已安装的celerra共享。引擎盖下的unix进程是抓取文件的......我想它并不关心某些windows进程是否还在写入它。

感谢您的时间medPhys-pl!