用java将列表存储到文件中一段时间
我正在从一个服务中获取一个数据列表(数据将连续出现),该列表只需存储在一个文件中1分钟,然后就可以丢弃 我已经尝试将数据存储到文件中,它正在工作,下面是示例用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
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();
}
}