java类Timer和TimerTask的使用

本文介绍 Java 中 Timer 类的基本使用方法,包括如何创建任务、设置任务执行时间和频率,并通过一个示例展示了如何让一个任务在指定时间后重复执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值