He hecho las comprobaciones para ver si los archivos existen, en el caso del archivo de origen, que se pueda leer también, y en el caso del destino, que se pueda escribir en él si ya existe.
A la hora de copiar he usado el método "Thread.sleep()" para hacer una breve pausa entre datos copiados y mostrar así la barra de progreso de manera correcta.
Una vez acabada la copia, se visualiza el contenido de ambos archivos para comprobar su correcto funcionamiento
RESULTADO: