5

file utils copy file メソッドを使用してファイルをコピーしようとしています。例外がスローされることがあるいくつかの問題に遭遇しています

java.io.IOException: Failed to copy full contents from 'path.xml' to localfile.xml

私はググって、ターゲットファイルの長さが宛先ファイルの長さと異なる場合にこの例外がスローされることをコードで見ました。例外は数回しか発生しません-これは、コピーしようとしているファイルが一貫して更新中なので、更新中にキャッチする可能性があります(値が変更されたxmlファイルのみ)

呼び出しを a でラップすると、if(target.canRead())これはほとんど違いがないようです。

誰でも助けることができますか?

*更新: * サード パーティ ベンダーを介して書き込まれているため、ファイルをロックできません。これにより、あらゆる種類の問題が発生します。

4

3 に答える 3

1

Files in Java 7 を使用して解決された同じ問題 (大きなファイル) があります。

File srcFile = ...
File destFile = ...
File directory = ...
if (!Files.exists(directory.toPath())) {
    // use forceMkdir to create parent directory
    FileUtils.forceMkdir(directory);
}
Files.copy(srcFile.toPath(), new FileOutputStream(destFile));
于 2014-12-11T12:45:01.390 に答える