网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.APPLET实例-从源代码到应用.
.JavaPub系列--webwork开发指南-1.
.手机斜角地图中A*算法的实用化.
.Excel的java处理方式.
.软件操作界面设计须遵循的一些原.
.意外对象.
.Java高级编程——泛型类型 第一部.
.Windows CE PocketPC上的Java编程.
.脚本问题解答.
.Java编程应用:使用动态代理实现.
.Java新手入门:浅谈DAO模式.
.Javascript实例教程(7) 利用Java.
.采用POI和ANTLR提取WORD文档数据.
.JBuilder 6 :Borland方式的Java.
.关于Java编程语言中EJB最新技术的.
.EJB应用技术的体系结构详解(1).
.Java:嵌入网络的核心.
.发布您的最新基于Eclipse的产品一.
.RMI的主要优点.
.java编写TCP方式的通信程序.

使用Java中的Timer和TimerTask

发表日期:2008-1-5


   有的时候我们需要每隔一段时间去执行某个任务,在Java中提供了Timer and TimerTask来完成这个任务,本文提供一个应用程序的源代码告诉你如何使用这两个类。

   Timer和TimerTask的方法很少,使用起来也非常方便。希望假如碰到问题参考一下API doc,里面写的很清楚。TimerTask是个抽象类,他扩展了Object并实现了Runnable接口,因此你必须在自己的Task中实现public void run()方法。这也就是我们需要执行的具体任务。Timer实际上是用来控制Task的,他提供的主要方法是重载的schedule()方法。我们这里将使用schedule(TimerTask task,long time,long internal)方法来说明如何使用它。

   下面直接提供给用程序的源代码,有得时候感觉说的太多,对初学者作用并不是很大。但是当把代码给他们看了以后,很轻易就接受了。下面我要完成的任务就是每隔3秒钟从一个文件中把内容读出来并打印到控制台,文件的内容如下:
ming.txt
hello world
beijing
basketball
java
c/c++
    这里涉及到一些IO的知识,但并不复杂。我们使用BufferedReader从文件里面读取内容,一行一行的读取,代码如下:

   try
   {
    BufferedReader br = new BufferedReader(new FileReader("ming.txt")); 
    String data = null;
    while((data=br.readLine())!=null)
    {
     System.out.println(data); 
    } 
   } 
   catch(FileNotFoundException e)
   {
    System.out.println("can not find the file"); 
   }
   catch(IOException e)
   {
    e.printStackTrace(); 
   }
在主程序中我们启动timer让他开始执行读取文件的工作。整个程序的内容如下
import java.util.*;
import java.io.*;

public class TimerUse
{
 public static void main(String[] args)
 {
  PickTask pt = new PickTask();
  pt.start(1,3); 
 } 
}

class PickTask
{
 private Timer timer;

 public PickTask()
 {
  timer = new Timer();
 }
 
 private TimerTask task = new TimerTask()
 {
  public void run()
  {
   
   try
   {
    BufferedReader br = new BufferedReader(new FileReader("ming.txt")); 
    String data = null;
    while((data=br.readLine())!=null)
    {
     System.out.println(data); 
    } 
   } 
   catch(FileNotFoundException e)
   {
    System.out.println("can not find the file"); 
   }
   catch(IOException e)
   {
    e.printStackTrace(); 
   }
   
  } 
 };
 
 public void start(int delay,int internal )
 {
  timer.schedule(task,delay*1000,internal*1000); 
 }
 
}


上一篇:使用JavaMail发送邮件 人气:1340
下一篇:J2SE 5.0的static import 人气:811
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐