我在文本文件中有这个内容:
|0| 1 | 2 |
我想替换" |"之间的值。新的一个。我试过这个方法,但它添加了旧的修改后的新修改:
|0| 1 | 2 |new1|new2|.
而不是:
|0| new1 | new2 |
我的代码是:
public static void generateReplace(String newfield) throws FileNotFoundException, IOException {
FileArrayProvider rs = new FileArrayProvider();
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("C:/aa.txt"), true));
Scanner sc = new Scanner(new File("C:/test.txt"));
// bw.write("|");
while(sc.hasNext()){
String line = sc.nextLine();
String nueva = rs.replace(line,newfield);
bw.write(nueva);
// bw.newLine();
}
bw.write("|");
bw.close();
}
FileArrayProvider是我的类,它有Replace方法:
public String replace(String a,String newfield){
String str = a;
String toBeReplaced = str.substring(0, a.length());
String resultado = str.replace(toBeReplaced, newfield);
return resultado;
}
答案 0 :(得分:0)
您要附加文件,因此无法获得所需的输出,只需将此行中的true
更改为false
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("/Test/src/com/aa.txt"), false));
的FileWriter public FileWriter(文件文件, boolean append)
参数: file - 要写入的文件对象
append - 如果为true,则将字节写入结尾 文件而不是开头
答案 1 :(得分:0)
我的回答是我不明白你为什么要替换加载数据的文件中的String
。
有一种更简单的方法。由于您要将所有数据加载到GUI文本框,因此您只需从文本框中获取数据并将其格式化为string
并将字符串写入文件。如果您正在考虑替换同一文件中的数据,则必须调用delete(Path path)
类的File
方法,然后编写该文件。