用java将列表存储到文件中一段时间

用java将列表存储到文件中一段时间,java,date,text-files,Java,Date,Text Files,我正在从一个服务中获取一个数据列表(数据将连续出现),该列表只需存储在一个文件中1分钟,然后就可以丢弃 我已经尝试将数据存储到文件中,它正在工作,下面是示例 private ArrayList<Person> persons = Personservice.getPersons(); FileOutputStream fos = new FileOutputStream("t.tmp"); ObjectOutputStream oos = new ObjectOutputStrea

我正在从一个服务中获取一个数据列表(数据将连续出现),该列表只需存储在一个文件中1分钟,然后就可以丢弃

我已经尝试将数据存储到文件中,它正在工作,下面是示例

private ArrayList<Person> persons = Personservice.getPersons();

FileOutputStream fos = new FileOutputStream("t.tmp");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(persons);
oos.close();
private ArrayList persons=Personservice.getPersons();
FileOutputStream fos=新的FileOutputStream(“t.tmp”);
ObjectOutputStream oos=新的ObjectOutputStream(fos);
oos.书面对象(人);
oos.close();

这是按预期写入文件t.tmp,但我不确定如何仅写入该文件1分钟,如果该文件的上次修改时间超过1分钟,您可以通过重置该文件来执行此操作:

....
File file = new File("t.tmp");
if(System.currentTimeMillis() -file.lastModified() > 60000){
   // code to reset file.
} 
....
我不知道如何只写1分钟的文件

我的解释是,您希望在1分钟后删除该文件。这可以通过使用由当前线程启动的定时线程来完成:

File file = new File("t.tmp");
new Thread(new Runnable() {
    @Override
    public void run() {
        try {
            Thread.sleep(60 * 1000);
            file.delete();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}).start();

还可以参考内置的

在创建文件后创建计时器任务,并将其配置为每1分钟运行一次。一旦执行该时间任务并删除文件,请取消计时器任务。 每分钟执行的示例代码:-

    // Your Class
    File file = new File("t.tmp");
    Timer t1 = new Timer();
    t1.schedule(new Test(file), 0,60000);


    class Test extends TimerTask {
    File file;
    public Test (File file) {
         this.file= file;
     }
    public void run() {
    // Delete the file and cancel the task.
    file.delete();
    timer.cancel();
     }
    }