tutorial - java.io jar




Comment copier un fichier d'un endroit à un autre? (3)

Utilisez les classes New Java File en Java> = 7.

Créez la méthode ci-dessous et importez les bibliothèques nécessaires.

public static void copyFile( File from, File to ) throws IOException {
    Files.copy( from.toPath(), to.toPath() );
} 

Utilisez la méthode créée comme ci-dessous dans main:

File dirFrom = new File(fileFrom);
File dirTo = new File(fileTo);

try {
        copyFile(dirFrom, dirTo);
} catch (IOException ex) {
        Logger.getLogger(TestJava8.class.getName()).log(Level.SEVERE, null, ex);
}

NB: - fileFrom est le fichier que vous voulez copier dans un nouveau fichier fileTo dans un dossier différent.

Crédits - @Scott: moyen concis standard pour copier un fichier en Java?

Je veux copier un fichier d'un endroit à un autre en Java.

Voici ce que j'ai jusqu'ici:

import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.List;
public class TestArrayList {
    public static void main(String[] args) {
        File f = new File(
            "D:\\CBSE_Demo\\Demo_original\\fscommand\\contentplayer\\config");
        List<String>temp=new ArrayList<String>();
        temp.add(0, "N33");
        temp.add(1, "N1417");
        temp.add(2, "N331");
        File[] matchingFiles = null;
        for(final String temp1: temp){
            matchingFiles = f.listFiles(new FilenameFilter() {
                public boolean accept(File dir, String name) {
                    return name.startsWith(temp1);
                }
            });
            System.out.println("size>>--"+matchingFiles.length);

        }
    }
}

Cela ne copie pas le fichier, quelle est la meilleure façon de le faire?


Vous pouvez utiliser this (ou n'importe quelle variante):

Files.copy(src, dst, StandardCopyOption.REPLACE_EXISTING);

Aussi, je recommanderais d'utiliser File.separator ou / place de \\ pour le rendre compatible sur plusieurs OS, question / réponse sur ce disponible here .

Puisque vous ne savez pas comment stocker temporairement des fichiers, jetez un oeil à ArrayList :

List<File> files = new ArrayList();
files.add(foundFile);

Pour déplacer une List de fichiers dans un seul répertoire:

List<File> files = ...;
String path = "C:/destination/";
for(File file : files) {
    Files.copy(file.toPath(),
        (new File(path + file.getName())).toPath(),
        StandardCopyOption.REPLACE_EXISTING);
}

  public static void copyFile(File oldLocation, File newLocation) throws IOException {
        if ( oldLocation.exists( )) {
            BufferedInputStream  reader = new BufferedInputStream( new FileInputStream(oldLocation) );
            BufferedOutputStream  writer = new BufferedOutputStream( new FileOutputStream(newLocation, false));
            try {
                byte[]  buff = new byte[8192];
                int numChars;
                while ( (numChars = reader.read(  buff, 0, buff.length ) ) != -1) {
                    writer.write( buff, 0, numChars );
                }
            } catch( IOException ex ) {
                throw new IOException("IOException when transferring " + oldLocation.getPath() + " to " + newLocation.getPath());
            } finally {
                try {
                    if ( reader != null ){                      
                        writer.close();
                        reader.close();
                    }
                } catch( IOException ex ){
                    Log.e(TAG, "Error closing files when transferring " + oldLocation.getPath() + " to " + newLocation.getPath() ); 
                }
            }
        } else {
            throw new IOException("Old location does not exist when transferring " + oldLocation.getPath() + " to " + newLocation.getPath() );
        }
    }  




io