JavaでファイルをコピーするにはFilesクラスのcopyメソッドで可能となります。
第一引数へコピー元のPath、第二引数へコピー先のPathを指定することで可能ですが、コピー先に既にファイルが有る場合、IOExceptionが発生するので第三引数へ「StandardCopyOption.REPLACE_EXISTING」を指定することで上書き保存も可能となります。
Files.copy(Path source, Path target, CopyOption… options)のJavaDoc
Javaソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
/** * <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サンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
@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); } } |