定时器: 可以让我们在指定时间内做某件事情,可以重复做某件事情
依赖Timer和TimerTask这两个类
a) Timer:定时器类
i. public Timer () 构造方法
ii. public void schedule (TimerTask task , long delay)延迟delay时间后执行task任务,
task为TimerTask实现类的对象
iii. public void schedule (TimerTask task , long delay ,long period)
指定任务task从指定的延迟delay后开始进行重复的固定延迟period后执行
iv. public void schedule (TimerTask task , Date time)在指定时间time调度指定任务task
v. public void cancel() 结束任务
b) TimerTask:任务抽象类,为Timer安排一次或重复执行的任务,需要有实现类继承此类
c) 下面给出实例
package test5_Timer;
import java.io.File;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
/*
* 在指定时间删除指定文件夹(多级)
* 规定时间:定时器
* 指定文件夹:递归删除
*/
public class Demo {
public static void main(String[] args) throws ParseException {
Timer t=new Timer();
//设置截止时间
String s="2018-11-26 21:15:00";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d=sdf.parse(s);
//指定时间执行new Delet()任务
t.schedule(new Delet(), d);
}
}
//Delet任务
class Delet extends TimerTask {
public void run() {
File f=new File("F:\\a1");
deleteFile(f);
}
//递归删除指定的文件夹
private void deleteFile(File f) {
if(f!=null) {
File [] fa=f.listFiles();
for(File file :fa) {
if(file.isDirectory()) {
deleteFile(file);
}else {
System.out.println(file.getName()+":"+file.delete());
}
}
System.out.println(f.getName()+":"+f.delete());
}
}
}