【发布时间】:2014-09-10 00:50:25
【问题描述】:
我有这种访问现有文件的方法,循环遍历每一行并在满足条件时替换(字符串到字符串)某一行:
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.InputStreamReader;
private void UpdateConfig() {
try {
FileInputStream fstream = new FileInputStream("c:\\user\\config.properties");
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
while ((strLine = br.readLine()) != null) {
if (strLine.contains("FTPDate=2014/07/01 00:59:00")) {
System.out.println("FILE " + strLine);
strLine.replace("FTPDate=2014/07/01 00:59:00", "FTPDate=2014/09/10 00:00:00");
//strLine.replace("((19|20)\\d\\d/(0?[1-9]|1[012])/(0?[1-9]|[12][0-9]|3[01])) ([2][0-3]|[0-1][0-9]|[1-9]):[0-5][0-9]:([0-5][0-9]|[6][0])", "2014/09/10 00:00:00");
System.out.println("FILE " + strLine);
}
}
in.close();
} catch (Exception e) {
}
}
在 sysout 中,它似乎被替换了:
FILE FTPDateTejas=2014/07/01 00:59:00
FILE FTPDateTejas=2014/09/10 00:00:00
但是当我检查文件时,日期仍然保持不变。我错过了什么吗?有谁知道我错过了什么?谢谢
【问题讨论】:
-
replace更改内存中的字符串但不更改磁盘。您需要打开另一个文件进行写入并写出每一行。
标签: java bufferedreader fileinputstream