欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java判断时间段内文件是否更新的方法

程序员文章站 2024-03-01 10:11:46
本文实例讲述了java判断时间段内文件是否更新的方法。分享给大家供大家参考。具体实现方法如下: 1.定时器 复制代码 代码如下:private timer timer;...

本文实例讲述了java判断时间段内文件是否更新的方法。分享给大家供大家参考。具体实现方法如下:

1.定时器

复制代码 代码如下:
private timer timer; 
 
/**
* 简易定时器
* @param delay  多久后开始执行。毫秒
* @param period 执行的间隔时间。毫秒
*/ 
public void test(long delay, long period) { 
        timer = new timer(); 
        timer.schedule(new timertask() { 
            public void run() { 
                //你 的 操作方法 
                system.out.println(system.currenttimemillis()); 
            } 
        }, delay, period); 
}

2.深化版

复制代码 代码如下:
package classloader; 
/**
 * @author vma
 */ 
// 自定义一个类加载器 
public class dynamicclassloader extends classloader { 
    public class<?> findclass(byte[] b) throws classnotfoundexception { 
        return defineclass(null, b, 0, b.length); 
    } 

package classloader; 
import java.io.file; 
import java.io.fileinputstream; 
import java.io.ioexception; 
/**
 * @author vma
 */ 
public class manageclassloader { 
    dynamicclassloader dc =null; 

    long lastmodified = 0l; 
    class c = null; 
    //加载类, 如果类文件修改过加载,如果没有修改,返回当前的 
    public class loadclass(string name) throws classnotfoundexception, ioexception{ 
     if (isclassmodified(name)){ 
        dc =  new dynamicclassloader(); 
      return c = dc.findclass(getbytes(name)); 
     } 
     return c; 
    } 
    //判断是否被修改过 
    private boolean isclassmodified(string filename) { 
        boolean returnvalue = false; 
        file file = new file(filename); 
        if (file.lastmodified() > lastmodified) { 
            returnvalue = true; 
        } 
        return returnvalue; 
    } 
       // 从本地读取文件 
       private byte[] getbytes(string filename) throws ioexception { 
        file file = new file(filename); 
        long len = file.length(); 
        lastmodified = file.lastmodified(); 
        byte raw[] = new byte[(int) len]; 
        fileinputstream fin = new fileinputstream(file); 
        int r = fin.read(raw); 
        if (r != len) {
            throw new ioexception("can't read all, " + r + " != " + len);
        }
        fin.close();
        return raw;
    }
}

3.thread方法

复制代码 代码如下:
class thread1 extends thread{
  public void run(){
//调用业务方法(查看文件是否改变)
thread.currentthread().sleep("100000");
}

希望本文所述对大家的java程序设计有所帮助。