Impossible de supprimer et renommer un fichier txt

Résolu
daviddubois Messages postés 93 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 janvier 2012 - 8 juil. 2007 à 11:24
daviddubois Messages postés 93 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 janvier 2012 - 8 juil. 2007 à 13:28
Bonjour,

J'aimerais supprimer un fichier txt et renommer un autre par celui supprimer.

Je pense faire tout ce que je dois faire mais ça ne fonctionne pas.

J'utilise la méthode delete() pour supprimer et renameTo() pour renommer.

Je ferme les flux avant de supprimer/renommer :

bw.close();
br.close();

Ensuite je supprime et renomme :

 f.delete();
  f2.renameTo(f);

Je vous laisse le code de la méthode:

Merci pour tout
David

public static void ajouterMot()throws IOException
 {
  
  File f = new File("c:\\bidon.txt");
  FileReader fr = new FileReader(f);
  BufferedReader br = new BufferedReader(fr);
  
  File f2 = new File("c:\\bidon2.txt");
  FileWriter fw = new FileWriter(f2);
  BufferedWriter bw = new BufferedWriter(fw);
  String aRechercher = "SET PATH";
  
  String ligne = "";
  int i=0;
  while ((ligne = br.readLine())!=null)
  {
   System.out.println("ligne vaut "+ligne);
   i++;
   if (ligne.indexOf(aRechercher)!=-1)
   {
    ligne+= ";c:\\bidon;";
    bw.write(ligne);
    bw.newLine();
   }
   else
   {
    bw.write(ligne);
    bw.newLine();
   }
  }
  System.out.println("i vaut " + i);
 bw.close();
  br.close();
  f.delete();
  f2.renameTo(f);
  
 }

3 réponses

daviddubois Messages postés 93 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 janvier 2012
8 juil. 2007 à 13:28
Re,

Je viens avec une bonne nouvelle, j'ai trouvé

Il fallait fermer les flux FileReader et FileWriter.

J'ai mis la suppression/renommage dans la méthode main car dans les deux cas, le fichier doit être supprimé et renommé.

Voici le code en entier avec les nouveautés en bleues :

import java.io.*;
public class bidon
{
 public static void main (String [] args) throws IOException
 {
  File f = new File("c:\\bidon.txt");
  FileReader fr = new FileReader(f);
  BufferedReader br = new BufferedReader(fr);
  
  File f2 = new File("c:\\bidon2.txt");
  FileWriter fw = new FileWriter(f2);
  BufferedWriter bw = new BufferedWriter(fw);
  
  String aRechercher = "SET PATH";
  String ligne = "";
  int i=-1;
  
  while ((ligne=br.readLine())!=null)
  {
   System.out.println(ligne);
   
   if(ligne.indexOf(aRechercher)!=-1)
   {
    //System.out.println("ligne.indexOf(aRechercher vaut " + ligne.indexOf(aRechercher));
    System.out.println("trouve !");
    i++;
    System.out.println("i vaut " + i);
   }
  }
  
  if (i>-1)
  {
   ajouterMot();
  }
  else
  {
   ajouterPhrase();
  }
  
  fw.close();
  fr.close();
  
  
 f.delete();
 f2.renameTo(f);
 }
 
 public static void ajouterMot()throws IOException
 {
  
  File f = new File("c:\\bidon.txt");
  FileReader fr = new FileReader(f);
  BufferedReader br = new BufferedReader(fr);
  
  File f2 = new File("c:\\bidon2.txt");
  FileWriter fw = new FileWriter(f2);
  BufferedWriter bw = new BufferedWriter(fw);
  String aRechercher = "SET PATH";
  
  String ligne = "";
  int i=0;
  while ((ligne = br.readLine())!=null)
  {
   System.out.println("ligne vaut "+ligne);
   i++;
   if (ligne.indexOf(aRechercher)!=-1)
   {
    ligne+= ";c:\\bidon;";
    bw.write(ligne);
    bw.newLine();
   }
   else
   {
    bw.write(ligne);
    bw.newLine();
   }
  }
  System.out.println("i vaut " + i);
 bw.close();
  br.close();
  
  
 }
 
 public static void ajouterPhrase() throws IOException
 {
  File f = new File("c:\\bidon.txt");
  FileReader fr = new FileReader(f);
  BufferedReader br = new BufferedReader(fr);
  
  File f2 = new File("c:\\bidon2.txt");
  FileWriter fw = new FileWriter(f2);
  BufferedWriter bw = new BufferedWriter(fw);
  String aRechercher = "SET PATH";
  
  String ligne="";
  
  while((ligne=br.readLine())!=null)
  {
   
    bw.write(ligne);
    bw.newLine();
   
   
  }
  
  bw.write("SET PATH=C:\\BIDON;");
  
  bw.close();
    br.close();
     
  
 }
 


}
3
amundain Messages postés 110 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 28 août 2012 1
8 juil. 2007 à 11:38
Salut,

Tu devrais inverser les lignes :

  f.delete();
  f2.renameTo(f);

car tu essaies de renommer un fichier avec un nom supprimé !

A +,

amundain

<hr size="2" width="100%" />Java bien,merci.
0
daviddubois Messages postés 93 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 janvier 2012
8 juil. 2007 à 11:43
Salut,

C'est logique ce que tu me dis mais j'avais déjà essayé et ça ne fonctionne pas.

J'espère que quelqu'un pourra m'aider pour ce problème.

Merci à tous.
0