写一个简单的java 定时器
1. 首先写一个获取时间,并格式化的操作类,使用单例模式import java.text.SimpleDateFormat; public class TimerGet {private static TimerGet instance;public static TimerGet getInstance() {return instance;}public static void setInstance(TimerGet instance) {TimerGet.instance = instance;}/** * 打印数据功能 */public static void getTime(){ long begin = System.currentTimeMillis(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); String timeStr_2 = formatter.format(System.currentTimeMillis()); long end = System.currentTimeMillis(); System.out.println(timeStr_2); }/** * 返回数据功能 * @return */public static String getTimeReturn(){ SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); String timeStr_2 = formatter.format(System.currentTimeMillis()); return timeStr_2; }}
2. 写定时器的具体类,这里主要用到Timer
import java.io.File;import java.io.FileWriter;import java.util.Timer;import java.util.TimerTask;public class MyTimer3 {static class MyTask extends TimerTask {private int threadId;public void run() {taskHandler(this.threadId);}public static void writeFile(String s) {FileWriter out;File file = new File("E://WorkSpace//test//test_timeThread_07//Test.log");try {out = new FileWriter(file,true); out.write(s+"\r\n"); out.flush(); out.close();}catch(Exception e) {e.printStackTrace();}}private static synchronized void taskHandler(int threadId) { System.out.println(TimerGet.getInstance().getTimeReturn()); writeFile("time: "+ TimerGet.getInstance().getTimeReturn());}}public static void main(String[] args) {Timer timer = new Timer();new MyTask().writeFile("任务开始");long begTime = 0;long endTime = 0;begTime = System.currentTimeMillis();System.out.println("任务开始"); timer.schedule(new MyTask(), 0,1000);while(true) {try{ int ch = System.in.read(); if(ch-'c'==0) {timer.cancel();endTime = System.currentTimeMillis();String endStr = "任务暂停,总耗时 : "+(endTime-begTime) + " 毫秒";new MyTask().writeFile(endStr);new MyTask().writeFile("--------------------end");System.out.println(endStr);}}catch (Exception e) { e.printStackTrace();}}}}
页:
[1]