[java] copie de fichier et progressbar

copie de fichier et progressbar [java] - Java - Programmation

Marsh Posté le 01-06-2004 à 16:13:21    

Bonjour,
j'ai trouvé sur le forum une méthode qui me permet de copier des fichiers mais je voudrais savoir si il est possible d'y ajouter une JprogressBar et si oui comment :))
 

Citation :

 public static void copyFileBuffered(final String currentFile, final String newFile, final int bufferSize) throws FileNotFoundException, IOException {  
   System.out.println("On copie "+currentFile+ "vers "+newFile );
        final BufferedReader in = new BufferedReader(new FileReader(currentFile), bufferSize * 1024);  
        try {  
            final BufferedWriter out = new BufferedWriter(new FileWriter(newFile), bufferSize * 1024);  
            try {  
                int s = in.read();  
                while(s != -1) {  
                    out.write(s);  
                    s = in.read();  
                }//end while  
                out.flush();  
              } finally {  
                out.close();  
            }//end try  
          } finally {  
            in.close();  
        }//end try  
    }//end copyFileBuffered


 
Merci pour votre aide.
 
++

Reply

Marsh Posté le 01-06-2004 à 16:13:21   

Reply

Marsh Posté le 01-06-2004 à 16:23:58    

Une petite lecture pour commencer:
http://java.sun.com/docs/books/tut [...] gress.html
Ensuite, il suffit de passer en parametre de cette méthode une référence vers la progress bar et de la mettre a jour. Attention, il faudra appeler cette methode dans un thread a part.


---------------
Light is right
Reply

Marsh Posté le 01-06-2004 à 16:44:57    

nerisson a écrit :


Ensuite, il suffit de passer en parametre de cette méthode une référence vers la progress bar et de la mettre a jour. Attention, il faudra appeler cette methode dans un thread a part.


Merci pour le lien :)) mais je l'avasi déjà lu !
Ce qui me pose pb en fait, c'est bien le reste
-ajouter la ref vers la progresse bar er appeler la méthode dans le thread à part.
 
merci pour votre aide.
 
++

Reply

Marsh Posté le 01-06-2004 à 16:59:56    

Codé a l'arrache en 5 minutes:

Code :
  1. private void jButton1_actionPerformed(final ActionEvent e) {
  2.     new Thread() {
  3.       public void run() {
  4.         try {
  5.           copyFileBuffered("c:/temp/src.txt", "c:/temp/dst.txt", 10, jProgressBar);
  6.         } catch(final Exception excpt) {
  7.           excpt.printStackTrace();
  8.         }
  9.       }
  10.     }.start();
  11.   }//end jButton1_actionPerformed
  12.   public static void copyFileBuffered(final String currentFile, final String newFile, final int bufferSize, final JProgressBar progressBar) throws FileNotFoundException, IOException {
  13.     final int UPDATE_LENTH = 1024;
  14.     final int fileLength = (int)(new File(currentFile).length() / UPDATE_LENTH);
  15.     progressBar.setMaximum(fileLength);
  16.     progressBar.setMinimum(0);
  17.     progressBar.setValue(0);
  18.     System.out.println("On copie "+currentFile+ "vers "+newFile );
  19.     long current = 0;
  20.     final BufferedReader in = new BufferedReader(new FileReader(currentFile), bufferSize * 1024);
  21.     try {
  22.         final BufferedWriter out = new BufferedWriter(new FileWriter(newFile), bufferSize * 1024);
  23.         try {
  24.             int s = in.read();
  25.             while(s != -1) {
  26.               out.write(s);
  27.               s = in.read();
  28.               current++;
  29.               if((current % UPDATE_LENTH) == 0) {
  30.                 progressBar.setValue((int)(current / UPDATE_LENTH));
  31. System.out.println(current / UPDATE_LENTH);
  32.               }
  33.             }//end while
  34.             out.flush();
  35.           } finally {
  36.             out.close();
  37.         }//end try
  38.       } finally {
  39.         in.close();
  40.       }//end try
  41.     }//end copyFileBuffered


A toi de le modifier pour que ca soit un peu plus bo  :D


---------------
Light is right
Reply

Marsh Posté le 02-06-2004 à 13:38:44    

C'est bon...
 
Merci bcp
++


Message édité par ohan le 02-06-2004 à 14:33:08
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed