定時器是一個應用十分廣泛的線程工具,可用于排程多個定時任務以背景線程的方式執行。在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 黑澤明軍
【轉載文章務必保留出處和署名,謝謝!】