如何用java中的新行替换文本文件中的行?

如何用java中的新行替换文本文件中的行?,java,java-io,Java,Java Io,我在文本文件中有以下内容: |0| 1 | 2 | 我想用新的值替换“|”之间的值。我尝试使用此方法,但它在旧的值之后添加了新的修改,如下所示: |0| 1 | 2 |new1|new2|. 而不是: |0| new1 | new2 | 我的代码是: public static void generateReplace(String newfield) throws FileNotFoundException, IOException { FileArrayProvider rs

我在文本文件中有以下内容:

|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是我的类,它具有替换方法:

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;

}

您正在追加文件,因此无法获得所需的输出,只需将此行中的
true
更改为
false

BufferedWriter bw = new BufferedWriter(new FileWriter(new File("/Test/src/com/aa.txt"), false));
文件编写器 公共文件编写器(文件, 布尔(追加)

参数: 文件-要写入的文件对象

追加-如果为true,则字节将写入 文件而不是开头


我的答案是,我不明白您为什么试图替换加载数据的文件中的
字符串


有一种更简单的方法。由于要将所有数据加载到GUI文本框中,因此只需从文本框中获取数据并将其格式化为
字符串
,然后将字符串写入文件。如果要替换同一文件上的数据,则必须调用
delete(路径)
类的
方法,然后编写文件。

您的示例看起来像是在末尾添加了2个值?是的,但我想用新值替换旧值,如下所示:| new1 | new2 |您可以添加一个工作示例吗。
FileArrayProvider
是什么?你有它的替换方法的代码吗?但是wahat是
newfield