Prior to Java 7, Java did not provide a standard method to copy a file. To implement copying you needed to read all bytes from source file and write to destination. The read() method will return -1 when eof is reached, otherwise it returns the number of bytes read.
public static void copy(File source, File destination) throws IOException { // Open file to be copied InputStream in = new FileInputStream(source); // And where to copy it to OutputStream out = new FileOutputStream(destination); // Read bytes and write to destination until eof byte[] buf = new byte[1024]; int len = 0; while ((len = in.read(buf)) >= 0) { out.write(buf, 0, len); } // close both streams in.close(); out.close(); }