Timer类是用来执行任务的类,它接受一个TimerTask做参数
Timer有两种执行任务的模式,最常用的是schedule,它可以以两种方式执行任务:1:在某个时间(Data),2:在某个固定的时间之后(int delay).这两种方式都可以指定任务执行的频率.看个简单的例子:
-----测试类
package com.meng.timer;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Timer;
public class TestTimer {
public static void main(String[] args) {
Timer timer=new Timer();
MyTask myTask=new MyTask();//实例化MyTask对象
timer.schedule(myTask,1000,2000);//在1秒后执行此任务,每次间隔2秒,如果传递一个Data参数,就可以在某个固定的时间执行这个任务.
while (true) {
try {
File f=new File("E:/text.txt");//得到文件路径,可以在e盘建一个.txt文件,内容可随便写
FileInputStream fis=new FileInputStream(f);
byte [] b=new byte[1024];//定义一个byte数组,大小为1024
int len=fis.read(b);
String message=new String(b,0,len);//从byte数组中读取信息,从0开始,每次读取的长度是len
if(message!=null){
myTask.setMessage(message);
}else {
timer.cancel();//退出Timer
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
编写一个MyTask类,继承TimerTask
package com.meng.timer;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.TimerTask;
public class MyTask extends TimerTask {
String message=null;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@Override
public void run() {
System.out.println(message);
}
}
Timer有两种执行任务的模式,最常用的是schedule,它可以以两种方式执行任务:1:在某个时间(Data),2:在某个固定的时间之后(int delay).这两种方式都可以指定任务执行的频率.看个简单的例子:
-----测试类
package com.meng.timer;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Timer;
public class TestTimer {
public static void main(String[] args) {
Timer timer=new Timer();
MyTask myTask=new MyTask();//实例化MyTask对象
timer.schedule(myTask,1000,2000);//在1秒后执行此任务,每次间隔2秒,如果传递一个Data参数,就可以在某个固定的时间执行这个任务.
while (true) {
try {
File f=new File("E:/text.txt");//得到文件路径,可以在e盘建一个.txt文件,内容可随便写
FileInputStream fis=new FileInputStream(f);
byte [] b=new byte[1024];//定义一个byte数组,大小为1024
int len=fis.read(b);
String message=new String(b,0,len);//从byte数组中读取信息,从0开始,每次读取的长度是len
if(message!=null){
myTask.setMessage(message);
}else {
timer.cancel();//退出Timer
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
编写一个MyTask类,继承TimerTask
package com.meng.timer;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.TimerTask;
public class MyTask extends TimerTask {
String message=null;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@Override
public void run() {
System.out.println(message);
}
}