在创建文件之前,删除前一天的文件

时间:2013-08-22 06:37:59

标签: java file

我在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));

4 个答案:

答案 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());