2010-10-15 5 views
0

Je dois vérifier un doc de texte si elle existe ou non et puis je dois remplacer une lettre dans ce dire a à o. Je l'ai fait la première partie comment remplacer le caractèreFichiers java remplaçant les caractères

class FDExists{ 
    public static void main(String args[]){ 
    File file=new File("trial.java"); 
    boolean exists = file.exists(); 
    if (!exists) { 

     System.out.println("the file or directory you are searching does not exist : " + exists); 

    }else{ 

     System.out.println("the file or directory you are searching does exist : " + exists); 
    } 
    } 
} 

Ce que j'ai fait

+0

Voulez-vous remplacer 'a' par' o' dans le fichier? Ou dans le nom de fichier? –

+0

dans le fichier. Je veux dire dans les données – Sumithra

Répondre

2

Vous ne pouvez pas le faire en une seule ligne de code.

Vous devez lire le fichier (avec InputStream), modifier le contenu et l'écrire dans le fichier (avec un OutputStream).

Exemple de code. J'ai omis try/catch/finally pour une meilleure compréhension de l'algorithme mais dans un vrai code, il faut ajouter ces blocs avec une gestion correcte des ressources de liberation. Vous pouvez également remplacer "\ n" par le séparateur de ligne système et remplacer "a" et "o" par des paramètres.

public void replaceInFile(File file) throws IOException { 

    File tempFile = File.createTempFile("buffer", ".tmp"); 
    FileWriter fw = new FileWriter(tempFile); 

    Reader fr = new FileReader(file); 
    BufferedReader br = new BufferedReader(fr); 

    while(br.ready()) { 
     fw.write(br.readLine().replaceAll("a", "o") + "\n"); 
    } 

    fw.close(); 
    br.close(); 
    fr.close(); 

    // Finally replace the original file. 
    tempFile.renameTo(file); 
}