我已经四处搜索,但没有找到适合我目的的解决方案......我见过这样的解决方案:删除文件并重新创建它等等,但我需要在程序运行时删除所有以前的文本。
我的代码接近那个解决方案。正如您在下面的代码中看到的(我是菜鸟“程序员”,请原谅我的琐碎代码)我已经有一个文件。文本已经在其中。当我通过 CMD 运行程序时,我可以使用 Scanner 添加新文本(它被附加),通过点击“q”字符退出程序,或者我可以通过键入“delete”来删除/擦除文本。好吧,原来之前的文本被删除了,但“本次会议”中的文本没有!意思是,如果我写信给控制台:
这是测试。
我想删除这两个句子。
删除
这是应该打印的文本。
q
import java.io.*;
import java.util.*;
public class ReadWriteFile{
public static void main (String[]agrs) throws IOException{
try{
Scanner vhod = new Scanner (System.in);
FileWriter fw = new FileWriter("Filee.txt", true);
BufferedWriter bw = new BufferedWriter(fw);
for(int i = 1; i <100; i++){
String s = vhod.nextLine();
if(s.charAt(0)=='q'){
i = 111;
}
else if (s.equals("delete")){
FileOutputStream writer = new FileOutputStream("Filee.txt");
}
else {
bw.write(s);
}
}
bw.close();
}
catch(IOException e){
e.printStackTrace();
}
}
}
该程序返回所有 3 个句子(“q”和“delete”当然不会打印到控制台,它们是命令),而它应该只返回最后一个:“这是应该打印的文本”。
我希望我足够清楚,有人会理解我的问题。
感谢好心人帮助我们初学者与 Java 编码作斗争 :)