Trouver et remplacer des mots dans un fichier texte à l'aide de java

Je suis en train d'essayer de trouver et de remplacer certains mots dans un fichier texte à l'aide de java. Mon code fonctionne dans une mesure toutefois la sortie que je reçois est mauvais.
J'ai besoin de remplacer plusieurs mots à partir d'une ligne dans un fichier texte avec la saisie de l'utilisateur, cependant quand je lance mon code à la ligne des copies de lui-même une fois pour chaque mot que je cherche à remplacer.

Par exemple si je veux remplacer les 3 mots suivants:

python ycsb phase db -s -P /home/james/YCSB/workloads/workloada -p 
db.url=db://IP:port -p db.database=name

Je me retrouve avec 3 exemplaires de la ligne, chacun avec un autre mot remplacé. Plutôt que de 1 ligne avec tous les 3 de la nécessaire mots remplacés.
Le Code ci-dessous, merci d'avance.

public static void main(String[] args) {
System.out.print("Phase: ");
Scanner sp = new Scanner(System.in);
String p = sp.nextLine();
System.out.print("Database: ");
Scanner sd = new Scanner(System.in);
String d = sd.nextLine();
System.out.print("IP address: ");
Scanner sip = new Scanner(System.in);
int ip = sip.nextInt();
try {
File file = new File("C://users//James//Desktop//newcommand.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
String line = "", oldtext = "";
while((line = reader.readLine()) != null) {
oldtext += line + "\r\n";
}
reader.close();
String phase  = oldtext.replaceAll("phase", "" + p);
String database = oldtext.replaceAll("db", "" + d);
String ips = oldtext.replaceAll("IP", "" + ip);
FileWriter writer = new FileWriter("C://users//James//Desktop//newcommand.txt");
writer.write(phase + ips + database);
writer.close();
} catch (IOException e) {
//handle e
}
}

OriginalL'auteur JamesF | 2015-03-15

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *