我有follwoing 3線輸入文件inputfile.txt:Java的:在一個文件中替換多個字符串,並將其寫入到輸出文件
REPLACE_STRING_1 is karthik
REPLACE_STRING_2 is 21
REPLACE_STRING_3 is chennai
我需要使用不同的值來代替replace_strings和寫入內容添加到新文件。但是用下面的代碼,我最終在新文件中有3組相同的行。我怎樣才能解決這個問題?我想最終的輸出看起來像這樣:
name is karthik
age is 21
city is chennai
這裏是我的代碼:
try {
File file = new File("inputfile.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
String line = "", oldtext = "";
while ((line = reader.readLine()) != null) {
oldtext += line + "\r\n";
}
reader.close();
String ReplaceVar1 = oldtext.replaceAll("REPLACE_STRING_1", "name");
String ReplaceVar2 = oldtext.replaceAll("REPLACE_STRING_2", "age");
String ReplaceVar3 = oldtext.replaceAll("REPLACE_STRING_3", "city");
// Write updated record to a file
FileWriter writer = new FileWriter("outputfile.txt");
writer.write(ReplaceVar1 + ReplaceVar2 + ReplaceVar3);
writer.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
我明白任何幫助。
'字符串ReplaceVar1 = oldtext.replaceAll( 「REPLACE_STRING_1」, 「名」);字符串ReplaceVar2 = oldtext.replaceAll(「REPLACE_STRING_2」,「age」); String ReplaceVar3 = oldtext.replaceAll(「REPLACE_STRING_3」,「city」);' – sidgate
您應該使用[try-with-resources](https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html )。 – Elazar
作爲一個經驗法則,如果你寫一行描述以下幾行的行註釋,你應該爲這個描述找到一個好的標題,並把整個事情放在一個新的方法中。 – Elazar