File Input Output Java

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
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)
        inChannel.close();
      if (outChannel != null)
        outChannel.close();
    }
  }
  public static void makeFile(String Path, String content) {
    try {
      // Create file
      FileWriter fstream = new FileWriter(Path);
      BufferedWriter bf = new BufferedWriter(fstream);
      bf.write(content);
      // Close the output stream
      bf.close();
    } 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]));
  }
}