Java FileChannel Copy copyFile(final File srcFile, final File destFile)

Here you can find the source of copyFile(final File srcFile, final File destFile)

Description

Copy a file.

License

LGPL

Parameter

Parameter Description
srcFile File to copy
destFile Destination file

Exception

Parameter Description
IOException if an error occurs while copying file

Declaration

public static boolean copyFile(final File srcFile, final File destFile) throws IOException 

Method Source Code

//package com.java2s;
/*/*from   www. j  ava 2 s  .  c  o  m*/
 *                  Eoulsan development code
 *
 * This code may be freely distributed and modified under the
 * terms of the GNU Lesser General Public License version 2.1 or
 * later and CeCILL-C. This should be distributed with the code.
 * If you do not have a copy, see:
 *
 *      http://www.gnu.org/licenses/lgpl-2.1.txt
 *      http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.txt
 *
 * Copyright for this code is held jointly by the Genomic platform
 * of the Institut de Biologie de l'?cole normale sup?rieure and
 * the individual authors. These should be listed in @author doc
 * comments.
 *
 * For more information on the Eoulsan project and its aims,
 * or to join the Eoulsan Google group, visit the home page
 * at:
 *
 *      http://outils.genomique.biologie.ens.fr/eoulsan
 *
 */

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.nio.channels.FileChannel;

public class Main {
    /**
     * Copy a file.
     * @param srcFile File to copy
     * @param destFile Destination file
     * @throws IOException if an error occurs while copying file
     */
    public static boolean copyFile(final File srcFile, final File destFile) throws IOException {

        return copyFile(srcFile, destFile, false);
    }

    /**
     * Copy a file.
     * @param srcFile File to copy
     * @param destFile Destination file
     * @param overwrite overwrite existing file
     * @throws IOException if an error occurs while copying file
     */
    public static boolean copyFile(final File srcFile, final File destFile, final boolean overwrite)
            throws IOException {

        if (srcFile == null) {
            throw new NullPointerException("Input file is null");
        }

        if (destFile == null) {
            throw new NullPointerException("output file is null");
        }

        if (!srcFile.exists()) {
            throw new IOException("Source file doesn't exists: " + srcFile);
        }

        if (srcFile.isDirectory()) {
            throw new IOException("Can't copy/move a directory: " + srcFile);
        }

        final File myDestFile;

        if (destFile.isDirectory()) {
            myDestFile = new File(destFile, srcFile.getName());
        } else {
            myDestFile = destFile;
        }

        if (destFile.exists()) {

            if (!overwrite) {
                return false;
            }

            if (!myDestFile.delete()) {
                throw new IOException("Can not remove existing file: " + myDestFile.getAbsolutePath());
            }

        }

        final FileChannel inChannel = new FileInputStream(srcFile).getChannel();
        final FileChannel outChannel = new FileOutputStream(myDestFile).getChannel();

        try {
            inChannel.transferTo(0, inChannel.size(), outChannel);
        } finally {
            if (inChannel != null) {
                inChannel.close();
            }
            if (outChannel != null) {
                outChannel.close();
            }
        }

        return true;
    }
}

Related

  1. copyFile(final File in, final File out)
  2. copyFile(final File in, final File out)
  3. copyFile(final File input, final File output)
  4. copyFile(final File src, final File dest)
  5. copyFile(final File src, final File dst)
  6. copyFile(final File srcFile, final File destFile)
  7. copyFile(final String src, final String dest)
  8. copyFile(final String src, final String dst)
  9. copyFile(InputStream is, OutputStream os)