Java - 如何清除文本文件而不删除它?

新手上路,请多包涵

我想知道清除文件的最佳方法是什么。我知道java会自动创建一个文件

f = new Formatter("jibberish.txt");
s = new Scanner("jibberish.txt");

如果不存在。但是如果存在并且我想在每次运行程序时清除它怎么办?这就是我想知道的:再说一遍我如何清除一个已经存在的文件只是空白?这就是我的想法:

 public void clearFile(){
    //go through and do this every time in order to delete previous crap
    while(s.hasNext()){
        f.format(" ");
    }
}

原文由 Kemosabe 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 500
2 个回答

如果您想在不删除的情况下清除文件,您可以解决此问题

public static void clearTheFile() {
        FileWriter fwOb = new FileWriter("FileName", false);
        PrintWriter pwOb = new PrintWriter(fwOb, false);
        pwOb.flush();
        pwOb.close();
        fwOb.close();
    }

编辑:它抛出异常所以需要捕获异常

原文由 Ankur Anand 发布,翻译遵循 CC BY-SA 3.0 许可协议

我能想到的最好的是:

 Files.newBufferedWriter(pathObject , StandardOpenOption.TRUNCATE_EXISTING);

Files.newInputStream(pathObject , StandardOpenOption.TRUNCATE_EXISTING);

在这两种情况下,如果 pathObject 中指定的文件是可写的,那么该文件将被截断。无需调用 write() 函数。上面的代码足以清空/截断文件。这是 Java 8 中的新功能。

希望能帮助到你

原文由 The Coder 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题