0

我已经四处搜索,但没有找到适合我目的的解决方案......我见过这样的解决方案:删除文件并重新创建它等等,但我需要在程序运行时删除所有以前的文本。

我的代码接近那个解决方案。正如您在下面的代码中看到的(我是菜鸟“程序员”,请原谅我的琐碎代码)我已经有一个文件。文本已经在其中。当我通过 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 编码作斗争 :)

4

0 回答 0