如果是月初...这样做?



我希望我的代码在每个月开始时清空特定的文本文件。我有这个代码,但似乎不起作用,语法可能有问题吗?

public void monthlyCleanse(File f){
    LocalDate localDate = LocalDate.now();
    String d = DateTimeFormatter.ofPattern("dd").format(localDate);
    System.out.println(d);
    if(d.equals("01")){

        "filename.txt".replace(toString().valueOf(f), "");
    }
}

您可以看到,我正在更改格式,以仅显示一个月的一天,然后我检查那天是否等于" 01",然后做某事……这是为了清空文本文件。

然后我在这里称呼它...

    monthlyCleanse(new File("filename.txt"));

如何确保此文件被清空?

执行此"filename.txt".replace(toString().valueOf(f), "");时,它将返回字符串"filename.txt"的内容的修改副本,而不是文件。您应该参考此问题,该问题说明了如何删除文件的内容。

这看起来像这样:

if(d.equals("01")){
    PrintWriter writer = new PrintWriter(f);
    writer.print("");
    writer.close();
}

在旁注:当您致电时:toString().valueOf(f)时,这很令人困惑。您应该用String.valueOf(f)替换它,因为它是静态功能。如果您查看其实现,它将返回参数中传递的File的路径,因此它与已经存在的String对象没有连接。

相关内容

最新更新