定时器是一个应用十分广泛的线程工具,可用于调度多个定时任务以后台线程的方式执行。在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/chenmingjunCopyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】