【发布时间】:2017-03-29 08:41:47
【问题描述】:
我想将现有文本文件中的一个词替换为另一个词。我认为我的代码是正确的,但是每当 我运行程序时,文本文件中的所有文本都会被删除。
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 Test {
public static void main(String ar[]) throws IOException{
String getText, putText;
File f = new File("Test.txt");
FileReader fr ;
BufferedReader br ;
BufferedWriter bw;
if(f.exists()){
try{
fr = new FileReader(f);
br = new BufferedReader(fr);
bw = new BufferedWriter(new FileWriter(f));
while((getText = br.readLine()) != null){
System.out.println(getText);
if(getText != null){
putText = getText.replaceFirst("Dog", "Cat");
bw.write(putText);
}
}
bw.close();
br.close();
}
catch(IOException e){
e.printStackTrace();
}
}else{
System.out.println("No File exists!");
}
}
}
【问题讨论】:
-
您在阅读时覆盖同一个文件...所以是的,无论如何
if(getText != null){根据 while 循环将始终为真 -
然而 puText 与 getText 相同,但 dog 被替换,因此它应该仍然有效。是 bw 到底在哪里写的问题。它是写到第一个空行还是写在哪里?
标签: java file bufferedreader filereader ioexception