【Java】Java のファイルの扱い

■ ファイルのコピー

 * Files.copy(sourcePath, destinationPath) を使う
上書き
 * Files.copy(sourcePath, destinationPath, StandardCopyOption.REPLACE_EXISTING) を使う

サンプル

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;

public class Main {
  public static void main(String[] args) {
    try {
      Path source = Paths.get("etc", "sample.txt");
      Path destination = Paths.get("etc", "clone.txt");
      Files.copy(source, destination, StandardCopyOption.REPLACE_EXISTING);
    } catch (IOException ex) {
      ex.printStackTrace();
    }
  }
}

使用上の注意

コピー先の途中にフォルダなかったら例外が発生する
・・・略・・・
Path destination = Paths.get("etc/sample", "clone.txt"); // フォルダ「sample」は存在しない
・・・略・・・

# 例外「java.nio.file.NoSuchFileException: etc\sample.txt -> etc\sample\clone.txt」が発生
回避策 : toFile().getParentFile().mkdirs()で途中のフォルダを作成する
・・・略・・・
Path destination = Paths.get("etc/sample", "clone.txt"); // フォルダ「sample」は存在しない
destination.toFile().getParentFile().mkdirs(); // ★途中のフォルダを作成する(あっても例外が出ない)★
・・・略・・・

参考文献

http://www.ne.jp/asahi/hishidama/home/tech/java/files.html

関連記事

Java】一時ディレクトリ取得/作成・一時ファイル作成

https://blogs.yahoo.co.jp/dk521123/37439082.html