我在C:驱动器文件夹中创建一个名为abc的dat文件,如下所示,现在我的文件每天生成 现在假设我的文件是今天生成的,那么tommrow也会像往常一样生成 但是当tommrow生成时我必须确保删除前一天的文件,因为该文件夹中的空间有限,并且每次需要执行此检查时,要从该文件夹中删除previos day文件,请告知如何实现这一目标..
File file = new File(FilePath + getFileName()); //filepath is being passes through //ioc //and filename through a method
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream fileOutput = new FileOutputStream(
file);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
fileOutput));
答案 0 :(得分:4)
为什么不使用file.delete()
?
File file = new File(FilePath + getFileName()); //filepath is being passes through //ioc //and filename through a method
if (file.exists()) {
file.delete(); //you might want to check if delete was successfull
}
file.createNewFile();
FileOutputStream fileOutput = new FileOutputStream(
file);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
fileOutput));
答案 1 :(得分:2)
如果您的文件名不时相同,则无需删除。通过明天运行代码,将覆盖今天创建的文件。
考虑以下案例
BufferedWriter bw=new BufferedWriter(new FileWriter("D:\\Test\test.txt"));
bw.write("abbbb");
bw.close(); // now this will create a test.txt in side Test folder
现在通过更改编写String
来运行它 BufferedWriter bw=new BufferedWriter(new FileWriter("D:\\test.txt"));
bw.write("hihi");
bw.close(); // now you can see file only containing hihi
答案 2 :(得分:1)
您可以通过以下方式更改代码:
if (file.exists()) {
file.delete();
}
file.createNewFile();
如果它不起作用,这是一个许可问题。
答案 3 :(得分:0)
如果您使用的是Java 7,则可以通过标准方式获取文件创建时间,以便您可以检查文件是否在前一天创建并且应该删除。
Path path = Paths.get("/filepath/");
BasicFileAttributes fileAttributes = Files.readAttributes(path, BasicFileAttributes.class);
System.out.println("creationTime:"+ fileAttributes.creationTime());