Mega Code Archive

 
Categories / Java / File Input Output
 

Copy file with FileChannel

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]));   } }