JavaでファイルをコピーするにはFilesクラスのcopyメソッドで可能となります。
第一引数へコピー元のPath、第二引数へコピー先のPathを指定することで可能ですが、コピー先に既にファイルが有る場合、IOExceptionが発生するので第三引数へ「StandardCopyOption.REPLACE_EXISTING」を指定することで上書き保存も可能となります。
Files.copy(Path source, Path target, CopyOption… options)のJavaDoc
Javaソース
/**
* <p>[概 要] Pathに指定されているファイルをコピー</p>
* <p>[詳 細] </p>
* <p>[備 考] </p>
* @param fromPath コピー元パス
* @param toPath コピー先パス
* @return コピー先ファイルの存在チェック結果(true:コピー成功、false:コピー失敗)
* @throws IOException
*/
public static boolean copyFile(Path fromPath, Path toPath) throws IOException{
try {
// ファイルをコピー(ファイルがあれば上書き保存)
Files.copy(fromPath, toPath, StandardCopyOption.REPLACE_EXISTING);
// ファイル存在チェックの結果を返却
return Files.exists(toPath);
} catch (IOException e) {
throw new IOException();
}
}
JUnitサンプル
@Test
public void copyFileTest() {
// 準備
Path fromPath = Paths.get("C:\\pleiades-2022-06-ultimate-win-64bit-jre_20220515\\workspace\\SampleJava1\\SampleXml.xml"); // コピー元
Path toPath = Paths.get("C:\\pleiades-2022-06-ultimate-win-64bit-jre_20220515\\workspace\\SampleJava1\\SampleXml_COPY.xml"); // コピー先
// 実行
boolean result = false;
try {
result = FileSamples.copyFile(fromPath, toPath);
} catch (IOException e) {
e.printStackTrace();
}
// 検証
assertTrue("コピー先のファイルが存在しません。", result);
}
}

