code: public static void append(File source, File dest) throws IOException{
  		try {
  			FileInputStream in = new FileInputStream(source);
  			RandomAccessFile out = new RandomAccessFile(dest,"rwd");
  			try {
  				FileChannel canalFuente = in.getChannel();
  				FileChannel canalDestino = out.getChannel();
  				long count=canalDestino.transferFrom(canalFuente,canalDestino.size(), canalFuente.size());
  				canalDestino.force(true);
  				
  			} catch (IOException e) {
  				throw new IOException("copiando ficheros orig:'" + source.getAbsolutePath()
  									  + "' destino:'" + dest.getAbsolutePath() + "'", e);
  			} finally {
  				IOUtils.closeQuietly(in);
  				out.close();
  			}
  		} catch (FileNotFoundException e) {
  			throw new IOException("copiando ficheros orig:'" + source.getAbsolutePath()
  								  + "' destino:'" + dest.getAbsolutePath() + "'", e);
  		}
  	}
docs: Copia el contenido de un fichero a otro en caso de error lanza una excepcion.
  @param source
  @param dest
  @throws IOException