Java tutorial
//package com.java2s; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class Main { public static void fileCopy(File src, File dst) throws IOException { InputStream in = new FileInputStream(src); try { saveToFile(in, dst); } finally { in.close(); } } public static void saveToFile(InputStream in, File dst) throws FileNotFoundException, IOException { OutputStream out = new FileOutputStream(dst); try { transfer(in, out); } finally { out.close(); } } public static void transfer(InputStream in, OutputStream out) throws IOException { byte[] buf = new byte[1024 * 1024]; int len; while ((len = in.read(buf)) > 0) out.write(buf, 0, len); } public static void transfer(InputStream in, OutputStream out, int maxBytes) throws IOException { byte[] buf = new byte[maxBytes]; int done = 0; int len; while (done < maxBytes && (len = in.read(buf)) > 0) { out.write(buf, 0, len); done += len; } } }