Copy file with FileChannel : FileChannel « File Input Output « Java

Copy file with FileChannel


import java.nio.channels.FileChannel;

public class FileUtils {
  public static void copyFile(File in, File out) throws IOException {
    FileChannel inChannel = new FileInputStream(in).getChannel();
    FileChannel outChannel = new FileOutputStream(out).getChannel();
    try {
      // magic number for Windows, 64Mb - 32Kb)
      int maxCount = (64 * 1024 * 1024) - (32 * 1024);
      long size = inChannel.size();
      long position = 0;
      while (position < size) {
        position += inChannel
            .transferTo(position, maxCount, outChannel);
    } catch (IOException e) {
      throw e;
    } finally {
      if (inChannel != null)
      if (outChannel != null)

  public static void makeFile(String Path, String content) {
    try {
      // Create file
      FileWriter fstream = new FileWriter(Path);
      BufferedWriter bf = new BufferedWriter(fstream);
      // Close the output stream
    } catch (Exception e) {// Catch exception if any
      System.err.println("Error: " + e.getMessage());

  public static void main(String args[]) throws IOException {
    FileUtils.copyFile(new File(args[0]), new File(args[1]));


Related examples in the same category

1.Performs a straightforward copy operation
2.Write to a file using FileChannel.
3.Using FileChannels to Access a File
4.Write to a mapped file.
5.Copy a file using NIO.
6.Get FileChannel from FileOutputStream and FileInputStream
7.Transfer between FileChannel
8.Read bytes from the specified channel, decode them using the specified Charset, and write the resulting characters to the specified writer
9.Demonstrates file locking and simple file read and write operations using java.nio.channels.FileChannel
10.Create a read-only memory-mapped file
11.Create a read-write memory-mapped file
12.Creating a Stream from a Channel
13.Create an inputstream on the channel
14.Create a private (copy-on-write) memory-mapped file.
15.A character output stream that sends output to a printer
16.Write file with FileChannel
17.Read file with FileChannel
18.Copy ALL available data from one stream into another with Channel