読者です 読者をやめる 読者になる 読者になる

[java] ファイルコピー

Javaファイルコピーでは、FileChannel#transferTo を使うと高速にコピーできるという記事を見つけたので、それのサンプルを以下に記載する・・・って参考URLそのままです。

参考URL
http://sattontanabe.blog86.fc2.com/blog-entry-71.html

/**
 * コピー元のパス[srcPath]から、コピー先のパス[destPath]へ
 * ファイルのコピーを行います。
 * コピー処理にはFileChannel#transferToメソッドを利用します。
 * 尚、コピー処理終了後、入力・出力のチャネルをクローズします。
 * @param srcPath    コピー元のパス
 * @param destPath    コピー先のパス
 * @throws IOException    何らかの入出力処理例外が発生した場合
 */
public static void copyTransfer(String srcPath, String destPath) 
    throws IOException {
    
    FileChannel srcChannel = new
        FileInputStream(srcPath).getChannel();
    FileChannel destChannel = new
        FileOutputStream(destPath).getChannel();
    try {
        srcChannel.transferTo(0, srcChannel.size(), destChannel);
    } finally {
        srcChannel.close();
        destChannel.close();
    }
}
/**
 * 実行例
 * @param args
 */
public static void main(String[] args) {
    try {
        copyTransfer("C:\\100M.txt", "C:\\a.txt");
    } catch (IOException e) {
        e.printStackTrace();
    }
}