¿Cómo se copian ficheros en Java?

Merche
22 de Agosto del 2003
Hola a todos. Les agradecería si alguien me pudiera ayudar en una práctica que estoy haciendo.

Quisiera saber cómo se copian fichero, de una carpeta a otra, en Java, puesto que mirando la documentación, la clase File no me proporcionda un método para ello.

Alguien sabe cómo podría hacerlo?

Hal
22 de Agosto del 2003
Bueno... lo que te propongo no es lo más optimo, pero a falta de rebuscar por la documentación del API para ver si hay una forma mejor...
Esto... Podrías usar un objeto BufferedReader y uno BufferedWriter, los construyes pasándoles como parámetros un FileReader y un FileWriter (respectivamente), y cuando construyas éstos, pasas como parámetros:
- Al FileReader, la dirección+nombreDelArchivo a copiar, en un String...
- Al FileWriter, la direcciónFinal+nombreDelArchivo, en un String.
Ej: BufferedWriter elBufferedWriter=new BufferedWriter(new FileWriter("c:/nombreArchivo"));
Cuando lo tengas todo, podrías poner dentro de un While(true) algo parecido a lo siguiente:
elBufferedWriter.newLine(elBufferedReader.readLine());
Si lo metes dentro de un try-catch, cazándo una IOException, cuando se llege al final del archivo, saldrás del bucle.
Otra forma de detectar el fin del archivo, es controlando cuando el método readLine() te devuelve null. Con la forma de la IOException, podrías salir del bucle si se produjese un error de lectura cualquiera, aunque no hubieses llegado al fin del archivo.
Una vez que hagas elBufferedWriter.close(), se escribirá en la nueva dirección el archivo.
Espero que esto te ayude para tu práctica... ¡¡Deséame suerte para la mía, que la voy a necesitar...!!