Home / Programmazione / Java / Copiare file con Java
Mattepuffo

Copiare file con Java

Copiare file con Java

Che io sappia Java non ha di dfeault un metodo per copiare file.

Se diamo uno sguardo alla classe File, infatti, troviamo tantissimi metodi utili per creare, listare, "controllare, rinominare,....

Ma non un metodo diretto per copiarli.

I motivi per voler copiare un file possono essere molti.

Nel mio caso è quello di creare un file di backup del mio piccolo database SQLite portatile.

In sostanza pgni volta che aggiungo, modifico o cancello un record voglio creare una copia del file sqlite.

Per questo mi sono creato una classe con un metodo statico che prende il contenuto del file originale e lo travasa nel secondo.

Ecco qua:

import java.io.*;

public class CreateBackup {

   public static void backupDbFile() throws FileNotFoundException, IOException {
     File dbOrig = new File("films.sqlite");
     File dbCopy = new File("films.sqlite.copy");
     InputStream in = new FileInputStream(dbOrig);
     OutputStream out = new FileOutputStream(dbCopy);
     byte[] buf = new byte[1024];
     int len;
     while ((len = in.read(buf)) > 0) {
        out.write(buf, 0, len);
     }
     in.close();
     out.close();
   }
}

Abbiamo due oggetti File che rappresentano rispettivamente il file ogirinale e la copia di backup.

Poi abbiamo un oggetto InputStream che rappresnta le sorgente di input, e il corrispettivo OutputStream.

Nel ciclo while non facciamo altro che leggere il contenuto del primo e scriverlo nel secondo.

Direi abbastanza semplice.