2013-08-22 3 views
0

Я создаю файл данных в папке с диском C: с именем abc, как показано ниже. Теперь мой файл создается каждый день теперь предположим, что если мой файл создан сегодня, будет также генерироваться, как обычно, , но когда tommrow он сгенерирован, я должен убедиться, что файл более раннего дня удален, поскольку пространство в этой папке ограничено, и эта проверка выполняется каждый раз, когда нужно сделать предыдущий файл дня, который будет удален из что папка, пожалуйста, посоветуйте, как достичь этого ..Перед созданием файла, удалив файл предыдущего дня

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)); 
+2

Просто не проверяйте этот файл или нет. Напишите содержимое с тем же именем файла. Он автоматически заменяет предыдущий файл. и если файл не существует, он создаст его. –

ответ

0

Если вы используете Java 7, то есть стандартный способ получить время создания файла, так что вы можете проверить, если файл создать d в предыдущий день и должен быть удален.

Path path = Paths.get("/filepath/"); 
    BasicFileAttributes fileAttributes = Files.readAttributes(path, BasicFileAttributes.class); 
    System.out.println("creationTime:"+ fileAttributes.creationTime()); 
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)); 
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 

теперь управляют этим путем изменения написания строк

BufferedWriter bw=new BufferedWriter(new FileWriter("D:\\test.txt")); 
    bw.write("hihi"); 
    bw.close(); // now you can see file only containing hihi 
+0

Можете ли вы добавить ссылки? –

+0

@KarthikT проверить измененный пост –

+0

Я действительно надеялся на некоторую документацию, перезаписывающую запись. Я пытаюсь найти что-то о режимах «write» и «append», но no luc –

1

Вы можете изменить свой код так:

if (file.exists()) { 
     file.delete(); 
} 
file.createNewFile(); 

И если он не работает, это вопрос разрешения.

Смежные вопросы