Java – Copiar archivos

En este ejemplo te mostramos como copiar archivos de una carpeta a otra usando Java con la ayuda de InputStream y OutputStream.  Para mostrar como copiar archivos usaremos un archivo de texto llamado “original.txt” que sólo contiene unas cuantas líneas.




El código es el siguiente:

package com.decodigo.ejemplos;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
 *
 * @author decodigo
 */
public class CopiarArchivo {

    public static void main(String[] args) {

        InputStream inputStream = null;
        OutputStream outputStream = null;

        try {

            File archivoOriginal = new File("/home/decodigo/Documentos/java/archivos/original.txt");
            File archivoCopia = new File("/home/decodigo/Documentos/java/archivos/copia.txt");

            inputStream = new FileInputStream(archivoOriginal);
            outputStream = new FileOutputStream(archivoCopia);

            byte[] buffer = new byte[1024];

            int length;
            while ((length = inputStream.read(buffer)) > 0) {
                outputStream.write(buffer, 0, length);
            }

            inputStream.close();
            outputStream.close();

            System.out.println("Archivo copiado.");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Como puedes ver, con la ayuda de FileInputStream y su método read, leemos un segmento del archivo en un arreglo de bytes llamado buffer, con la ayuda de un ciclo while, al mismo tiempo que leemos, escribimos el contenido usando el método write de FileOutputStream.  Finalmente y no menos importante, cerramos inputStream y outputStream con sus métodos close.

Al ejecutar el código obtenemos los siguiente:

 

Tendremos una copia del archivo “original.txt” pero con el nombre “copia.txt“.

Existen otras formas de copiar archivos, esta es una de las que más control te permite sobre la información copiando arreglos de bytes.  Esperamos que te sea de utilidad.