/** * Copy a file to a new location * @param _srcFilename The original file * @param _destFilename The location where a copy should be created * @param _tmpFile If true, the created file copy will be deleted on program exit * @throws IOException If there are IO problems during the copy */ public static void copyFile(String _srcFilename, String _destFilename, boolean _tmpFile) throws IOException { // Create channel on the source FileChannel srcChannel = new FileInputStream(_srcFilename).getChannel(); // Create destination file and associated directories if required File destFile = new File(_destFilename); if(_tmpFile) { destFile.deleteOnExit(); } File destDir = destFile.getParentFile(); if (destDir != null && !destDir.exists()) { destDir.mkdirs(); if (_tmpFile) { destDir.deleteOnExit(); } } destFile.createNewFile(); // Create channel on the destination FileChannel dstChannel = new FileOutputStream(_destFilename).getChannel(); // Copy entirefile contents from source to destination dstChannel.transferFrom(srcChannel, 0, srcChannel.size()); // Close the channels srcChannel.close(); dstChannel.close(); }