gpt4 book ai didi

java - 在 java 中创建、编写和编辑相同的文本文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:13:38 24 4
gpt4 key购买 nike

假设我有以下代码:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class EditFile {

public static void main(String[] args) {

try{
String verify, putData;
File file = new File("file.txt");
file.createNewFile();
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
bw.write("Some text here for a reason");
bw.flush();
bw.close();
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
while( br.readLine() != null ){
verify = br.readLine();
if(verify != null){
putData = verify.replaceAll("here", "there");
bw.write(putData);
}
}
br.close();


}catch(IOException e){
e.printStackTrace();
}
}

}

我想做的就是在文本文件中写一些东西,在我的例子中是“这里有一些文本是有原因的”。然后从我的文件中读取数据,最后将我的文件中的文本从“这里有一些文本是有原因的”更改为“那里有一些文本是有原因的”。我运行了代码,但它发生的只是在我的文件中写入“这里有一些文本是有原因的”。

我试图找出我的代码中可能有什么问题,但不幸的是,这是徒劳的。我非常感谢任何建议或重写。

最佳答案

将您的代码更改为:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class EditFile {

public static void main(String[] args) {

try{
String verify, putData;
File file = new File("file.txt");
file.createNewFile();
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
bw.write("Some text here for a reason");
bw.flush();
bw.close();
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);

while( (verify=br.readLine()) != null ){ //***editted
//**deleted**verify = br.readLine();**
if(verify != null){ //***edited
putData = verify.replaceAll("here", "there");
bw.write(putData);
}
}
br.close();


}catch(IOException e){
e.printStackTrace();
}
}

}

问题是您调用了 br.readLine() 两次,这会促使应用程序读取第 1 行然后第 2 行,在您的情况下您只有一行,这意味着您的程序读取了它在条件形式中,当将其声明为变量 verify 时,它正在停止,因为您没有更多数据来读取您的文件。

关于java - 在 java 中创建、编写和编辑相同的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20753600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com