Java FileChannel Copy copyFileNIO(File src, File dest)

Here you can find the source of copyFileNIO(File src, File dest)

Description

Copies the content of one file to another file.

License

Apache License

Parameter

Parameter Description
src source file.
dest destination file.

Exception

Parameter Description
IOException an exception

Declaration

public static void copyFileNIO(File src, File dest) throws IOException 

Method Source Code

//package com.java2s;
/*******************************************************************************
 * Copyright 2010 Dieselpoint, Inc./*w w  w . j  av a 2 s.  com*/
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import java.nio.channels.FileChannel;

public class Main {
    /**
     * Copies the content of one file to another file.
     * @param src source file.
     * @param dest   destination file.
     * @throws IOException
     */
    public static void copyFileNIO(File src, File dest) throws IOException {
        if (!dest.exists()) {
            dest.createNewFile();
        }

        final FileChannel srcChannel = new FileInputStream(src).getChannel();
        final FileChannel destChannel = new FileOutputStream(dest).getChannel();
        //64MB Buffer.
        final int bufferSize = (64 * 1024 * 1024);
        final long size = srcChannel.size();
        long position = 0;
        try {
            while (position < size) {
                position += srcChannel.transferTo(position, bufferSize, destChannel);
            }
            dest.setLastModified(src.lastModified());
        } finally {
            if (srcChannel != null) {
                srcChannel.close();
            }
            if (destChannel != null) {
                destChannel.close();
            }
        }
    }
}

Related

  1. copyFile(String srcPath, String destPath)
  2. copyFileByChannel(String srcFileName, String dstFileName)
  3. copyFileContent(final String sourcePath, final String targetPath)
  4. copyFileIntoProjectFolder(String projectName, File file)
  5. copyFileLocking(File copyFrom, File copyTo)
  6. copyFileNio(File src, File dst)
  7. copyFileOrDirectory(File source, File destination, boolean flag)
  8. copyFiles(File originalFile, File destinationFile)
  9. copyFiles(File source, File dest)