我的扫描仪读取了一个文件,然后在一个新文件中,我的作者复制了其中的一部分,并替换了我要编辑的行。
我在某些特定行中遇到问题,我想从stringarray [Ddd,Eee,...]
.
我的问题是我无法让扫描仪和文件写入器确定我想要传输元素的确切位置。它们需要"downstream_rm"
在 / 和 / 之间,并且还需要替换旧文本。
示例/目标:
旧文件行:
....
downstream_rm(j,l) ...
/ Aaa.(bbb)
Bbb.(ccc) /
....
新文件行:
...
downstream_rm(j,l( ....
/ str1
str2
... /
我试过这段代码,但没有得到想要的结果,因为它还保留了旧文本:
public static void main(String[] args) {
File file = new File();
File filenew = new File();
try {
PrintWriter out = new PrintWriter(new FileWriter(filenew, true));
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
if(line.contains("downstream_rm(j,l)")) {
scanner.nextLine(); // so that the line with "downstream" wont be deleted
String raw = "" ;
for (int index = 0; index < strarray.size(); index++) {
String s = strarray.get(index);
raw = raw + "\n" + s;
}
line = "/"+raw+"/" ; }
out.write(line);
out.write("\n");
}
out.flush();
out.close();
scanner.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
也试过这个,但它没有打印任何新内容:
if(line.contains("downstream_rm(j,l)")){
scanner.nextLine();
String raw = "" ;
for (int index = 0; index < strarray.size(); index++) {
String s = strarray.get(index);
raw = raw + "\n" + s;
}
String raw2 = raw.replaceAll(",", "");
line = line.replaceAll("/.*?/", "/"+raw2+"/");
}
out.write(line);
out.write("\n");