Impossible de supprimer et renommer un fichier txt [Résolu]

Signaler
Messages postés
93
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
6 janvier 2012
-
Messages postés
93
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
6 janvier 2012
-
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);
  
 }
A voir également:

3 réponses

Messages postés
93
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
6 janvier 2012

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();
     
  
 }
 


}
Messages postés
110
Date d'inscription
mercredi 28 mars 2007
Statut
Membre
Dernière intervention
28 août 2012
1
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.
Messages postés
93
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
6 janvier 2012

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.