java - FileUtils.copyFile 对大文件失败

标签 java large-files ioerror fileutils

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

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

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

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

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

谢谢!

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

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

最佳答案

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

感谢您抽出宝贵时间参加 medPhys-pl!

关于java - FileUtils.copyFile 对大文件失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18467042/

相关文章:

java - 从代理获取已实现的接口(interface)

java - 计数,数组或 HashMap (或集合)哪个更有效

Java余数计算

打开使用 re.search 刚刚找到的文件时,Python 不返回此类文件或目录

java - 为事件调度程序暂停

amazon-web-services - 使用 AWS Kinesis 上传大文件

python - 我怎样才能加速这个真正基本的Python脚本来偏移数字行

c++ - VC++ 2012 无法读取大于 4 GB 的文件

git - 对等错误 TensorFlow 重置连接

python - IOError 打印时输入/输出错误