public static void cp(final String source, final String target) {
		FileChannel inChannel = null;
		FileChannel outChannel = null;
		try {
			inChannel = new FileInputStream(new File(source)).getChannel();
			outChannel = new FileOutputStream(new File(target)).getChannel();
			// JavaVM does its best to do this as native I/O operations.
			inChannel.transferTo(0, inChannel.size(), outChannel);
		} catch (final FileNotFoundException e) {
			LOG.severe("File " + source + " not found! " + e.getMessage());
		} catch (final IOException e) {
			LOG.severe("Error while copying " + source + " to " + target + " : " + e.getMessage());
		} finally {
			try {
				if (inChannel != null) {
					inChannel.close();
				}
				if (outChannel != null) {
					outChannel.close();
				}
			} catch (final IOException e) {
				// ignore
				LOG.log(Level.INFO, "Ignored exception while copying files", e);
			}
		}
	}