java定时执行代码
原文发表在http://baihuazhou.javaeye.com/blog/200642
我们在项目中,经常会碰到这样一种需求,就是让某个程序在某个固定的时间去运行,比如定时备份操作。在Java的J2SE的API中可以很容易做到这一点。
让我们需要定时执行的类继承自java.util.TimerTask中的TimerTask类,把需要执行的方法放入run方法中:
import java.util.TimerTask;
public class MyTimerTask extends TimerTask {
@Override
public void run() {
System.out.println( " 备份程序运行…… " );
}
}
然后我们是java.util.Timer类来执行这个方法,测试类:
import java.util.Timer;
public class Test {
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule( new MyTimerTask(), 1000 );
}
}
我们看到控制台输出:
备份程序运行……
那么我们想让这个程序每隔五秒钟运行一次呢,可以这样来做:
timer.schedule( new MyTimerTask(), 0 , 5000 );
我们传入的第二个参数是方法首次执行时间,第三个参数是方法执行的间隔时间,我们可以在控制台看到:
备份程序运行……
备份程序运行……
备份程序运行……
备份程序运行……
当然我们也可以使用Date来实现定时操作:
Timer timer = new Timer();
Date date = new Date( 107 , 05 , 21 , 00 , 01 , 10 );
timer.schedule( new MyTimerTask(),date, 5000 );
相关文档:
这篇文章讨论和阐明了提供 JavaTM I/O 性能的多种技术。大多技术围绕调整磁盘文件 I/O,但是有些内容也同样适合网络 I/O 和窗口输出。第一部分技术讨论底层的I/O问题,然后讨论诸如压缩,格式化和串行化等高级I/O问题。然而这个讨论没有包含应用设计问题,例如搜索算法和数据结构,也没有讨论系统级的问题,例如文件高速缓冲 ......
网络程序的很大一部分是简单的输入输出,即从一个系统向另一个系统移动字节。字节就是字节,在很大程度上,读服务器发送的数据与读取文件没什么不同;向客户传送数据与写入一个文件也没有什么区别。
Java中输入和输出组织不同于大多数其他语言。它是建立在流(stream)上。不同的基本流类(如java.io.FileInputStream和sun.ne ......
System.getProperty(String name)方法用于得到系统的属性.System是在lang包中的一个类,这个类中存在大量和系统打交道的实用方法,而且一般都是类方
法,.getProperty(String key)就是其中一个比较常用的方法,用于返回系统参数文件中这个方法指定键所代表的值。
下面是该方法的常用参数。关键意义
......
多线程之间需要协调工作。例如,浏览器的一个显示图片的线程displayThread想要执行显示图片的任务,必须等待下载线程downloadThread将该图片下载完毕。如果图片还没有下载完,displayThread可以暂停,当downloadThread完成了任务后,再通知displayThread“图片准备完毕,可以显示了”,这时,displayThread继续执 ......
FileInputStream和FileOutputStream
FileInputStream :
用于顺序访问本地文件,用于读取诸如图像数据之类的原始字节流,从超类InputStream中继承了read,close等方法,对文件进行操作,不支持方法和方法.它的两个常用的构造方法是:
&nbs ......