199 votes

Comment faire une copie d'un fichier dans Android?

Dans mon application, je veux enregistrer une copie d'un certain fichier avec un nom différent (que je reçois de l'utilisateur)

Dois-je vraiment ouvrir le contenu du fichier et l'écrire dans un autre fichier?

Quelle est la meilleure façon de le faire?

354voto

Rakshi Points 2207

Pour copier un fichier et le sauvegarder dans votre chemin de destination, vous pouvez utiliser la méthode ci-dessous.

 public void copy(File src, File dst) throws IOException {
    InputStream in = new FileInputStream(src);
    OutputStream out = new FileOutputStream(dst);

    // Transfer bytes from in to out
    byte[] buf = new byte[1024];
    int len;
    while ((len = in.read(buf)) > 0) {
        out.write(buf, 0, len);
    }
    in.close();
    out.close();
}
 

130voto

NullNoname Points 600

Vous pouvez également utiliser FileChannel pour copier un fichier. Cela peut être plus rapide que la méthode de copie d'octet lors de la copie d'un fichier volumineux. Vous ne pouvez pas l'utiliser si votre fichier dépasse 2 Go.

 public void copy(File src, File dst) throws IOException {
    FileInputStream inStream = new FileInputStream(src);
    FileOutputStream outStream = new FileOutputStream(dst);
    FileChannel inChannel = inStream.getChannel();
    FileChannel outChannel = outStream.getChannel();
    inChannel.transferTo(0, inChannel.size(), outChannel);
    inStream.close();
    outStream.close();
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X