我希望我的代码在每个月开始时清空特定的文本文件。我有这个代码,但似乎不起作用,语法可能有问题吗?
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
对象没有连接。