如何用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