【发布时间】:2014-06-21 09:12:01
【问题描述】:
我有一个名为 log.txt 的文本文件。 它有以下数据
1,,Mon May 05 00:05:45 WST 2014,textFiles/a.txt,images/download.jpg
2,,Mon May 05 00:05:45 WST 2014,textFiles/a.txt,images/download.jpg
第一个逗号之前的数字是指定每个项目的索引。
我想要做的是读取文件,然后将给定行中字符串的一部分(例如 textFiles/a.txt)替换为另一个值(例如 something/bob.txt)。
这是我目前所拥有的:
File log= new File("log.txt");
String search = "1,,Mon May 05 00:05:45 WST 2014,textFiles/a.txt,images/download.jpg;
//file reading
FileReader fr = new FileReader(log);
String s;
try (BufferedReader br = new BufferedReader(fr)) {
while ((s = br.readLine()) != null) {
if (s.equals(search)) {
//not sure what to do here
}
}
}
【问题讨论】:
-
如果你愿意使用 perl:perlpie.com
-
如果您存储字符串的格式对于所有实例都相同,您可以做的是:- 搜索该特定字符串,使用分隔符创建一个字符串数组,在您的情况下,在该数组中的特定索引处替换您的字符串,然后在您的文本文件中替换回。这是一种方式。效率不高,但可以解决您的目的
-
试试
s = s.replaceAll("(?<=\\d{4}\\,)(.*)(?=\\,images)", "something/bob.txt");
标签: java file-io text-files