定时器是一个应用十分广泛的线程工具,可用于调度多个定时任务以后台线程的方式执行。在Java中,可以通过Timer和TimerTask类来实现定义调度的功能。(在java.util包下)
A:Timer(定时器类)
public Timer()
public void schedule(TimerTask?task, long?delay)
public void schedule(TimerTask task, long delay, long period)
B:TimerTask(任务抽象类)
public abstract void run()
public boolean cancel()
C:在实际开发中
Quartz是一个完全由java编写的开源调度框架。
D:需求:在指定的时间删除我们的指定目录(演示:使用项目路径下的demo)
示例代码如下:
1 package cn.itcast_12; 2 3 import java.io.File; 4 import java.text.ParseException; 5 import java.text.SimpleDateFormat; 6 import java.util.Date; 7 import java.util.Timer; 8 import java.util.TimerTask; 9 10 /* 11 * 需求:在指定的时间删除我们的指定目录(演示:使用项目路径下的demo) 12 */ 13 public class TimerTest { 14 public static void main(String[] args) throws ParseException { 15 Timer t = new Timer(); 16 17 String s = "2014-11-27 15:45:00"; 18 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 19 Date d = sdf.parse(s); 20 21 t.schedule(new DeleteFolder(), d); 22 } 23 } 24 25 26 class DeleteFolder extends TimerTask { 27 28 @Override 29 public void run() { 30 File srcFolder = new File("demo"); 31 deleteFolder(srcFolder); 32 } 33 34 // 递归删除目录 35 public void deleteFolder(File srcFolder) { 36 File[] fileArray = srcFolder.listFiles(); 37 if (fileArray != null) { 38 for (File file : fileArray) { 39 if (file.isDirectory()) { 40 deleteFolder(file); 41 } else { 42 System.out.println(file.getName() + ":" + file.delete()); 43 } 44 } 45 System.out.println(srcFolder.getName() + ":" + srcFolder.delete()); 46 } 47 } 48 49 }
我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】