Copie de fichier en java

xander -  
 Youssef -
bjr,
je voudrais faire une copie de fichier par exemple une image gif en java, lorsqu il s agit de .txtn y a pas de pbl ms des qu il s agit d un autre format, la copie s effectue mais je ne peux pas ouvrir le fichier!!j ai utilise un BufferedReader pr lire le fichier et un FileWriter pr ecrire sur le nouveau...
merci

4 réponses

  1. ghitaik
     
    je crois qu'il veut copier une image, et non pas la créée.
    sinon voiçi un petit bout de code qui fait l'affaire:

    public static boolean copier( File source, File destination ){ //Methode permettant la copie d'un fichier
    boolean resultat = false;

    // Declaration des flux
    java.io.FileInputStream sourceFile=null;
    java.io.FileOutputStream destinationFile=null;
    try {
    // Création du fichier :
    destination.createNewFile();
    // Ouverture des flux
    sourceFile = new java.io.FileInputStream(source);
    destinationFile = new java.io.FileOutputStream(destination);
    // Lecture par segment de 0.5Mo
    byte buffer[]=new byte[512*1024];
    int nbLecture;
    while( (nbLecture = sourceFile.read(buffer)) != -1 ) {
    destinationFile.write(buffer, 0, nbLecture);
    }

    // Copie réussie
    resultat = true;
    } catch( java.io.FileNotFoundException f ) {
    } catch( java.io.IOException e ) {
    } finally {
    // Quoi qu'il arrive, on ferme les flux
    try {
    sourceFile.close();
    } catch(Exception e) { }
    try {
    destinationFile.close();
    } catch(Exception e) { }
    }
    return( resultat );
    }
    10
    1. esperanza
       
      salut j'ai essayé avec cette fonction pour copier une image mais ne marche plus je sais pas pourquoi si quelqu'un à déjà essayé peut m'aider
      0
    2. KX Messages postés 19031 Statut Modérateur 3 020
       
      Le code de ghitaik n'est pas parfait (l'utilisation d'un buffer byte[512*1024] est contestable) mais je viens de vérifier et il marche très bien ! Il te faut utiliser ce genre de méthode main pour l'utiliser :

      import java.io.File;
      
      public static void main(String...args)
      {
          boolean b = copier(new File("D:\\test.jpg"),new File("D:\\test_copie.jpg"));
          System.out.println(b);
      }

      Si ton problème persiste créé une nouvelle discussion.
      0
    3. Youssef
       
      C'est OKK merci bien
      0
  2. nosense
     
    Hi,

    Le problème c que tu fais une copie en mode texte.
    Faut que tu fasses une copie en binaire.
    Passes tout simplement par un FileInputStream et
    un FileOutputStream. Utilises un tableau d'octets et ça
    ira tout seul
    2
  3. im
     
    salut je veux soivoir s ils vous plait comment creer un fichier en java ...
    merci inifiniment d avance
    1
    1. philtrain
       
      import java.io.*;

      ...

      File fichier = new File("monFichier");
      try {
      fichier.createNewFile();
      }
      catch(IOException e) {
      e.printstacktrace();
      }
      ...


      Pour la classe File, voir la doc :
      http://java.sun.com/j2se/1.5.0/docs/api/

      a+
      0
      1. jeeger > philtrain
         
        Bonjour,
        pour créer un fichier c simple
        String s = new String (){
        try{
        BufferedWrite fichier = new BufferedWriter(new FileWriter("le nom du fichier.txt"));
        fichier.writeLine(s,0,s.length());
        fichier.close();
        }
        catch(IOException e){
        system.out.println("Erreur fichier : " + e.toString());
        }
        0
  4. im
     
    salut je veux soivoir s ils vous plait comment creer un fichier en java ...
    merci inifiniment d avance
    0