判断时间段内文件是否更新
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); }
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; }}
class Thread1 extends Thread{ public void run(){//调用业务方法(查看文件是否改变)Thread.currentThread().sleep("100000");}