Das Beispiel in diesem Artikel beschreibt die Java-Methode zur Bestimmung, ob eine Datei innerhalb eines bestimmten Zeitraums aktualisiert wurde. Teilen Sie es als Referenz mit allen. Die spezifische Implementierungsmethode ist wie folgt:
1. Der Timer-Kopiercode lautet wie folgt: privater Timer-Timer;
/**
* Einfacher Timer
* @param Verzögerung Wie lange dauert es, bis die Ausführung beginnt? Millisekunde
* @param period Das Ausführungsintervall. Millisekunde
*/
Öffentlicher Void-Test (lange Verzögerung, langer Zeitraum) {
timer = neuer Timer();
timer.schedule(new TimerTask() {
public void run() {
//Ihre Arbeitsweise
System.out.println(System.currentTimeMillis());
}
}, Verzögerung, Punkt);
}
2. Die vertiefte Version des Kopiercodes lautet wie folgt: package classloader;
/**
* @author vma
*/
// Passen Sie einen Klassenlader an
öffentliche Klasse DynamicClassLoader erweitert ClassLoader {
public Class<?> findClass(byte[] b) löst ClassNotFoundException {
return defineClass(null, b, 0, b.length);
}
Paket-Klassenlader;
java.io.File importieren;
import java.io.FileInputStream;
import java.io.IOException;
/**
* @author vma
*/
öffentliche Klasse ManageClassLoader {
DynamicClassLoader dc =null;
Long lastModified = 0l;
Klasse c = null;
//Die Klasse laden. Wenn die Klassendatei geändert wurde, wird sie geladen. Wenn sie nicht geändert wurde, wird die aktuelle Datei zurückgegeben
öffentliche Klasse loadClass(String name) löst ClassNotFoundException, IOException{
if (isClassModified(name)){
dc = new DynamicClassLoader();
return c = dc.findClass(getBytes(name));
}
return c;
}
//Bestimmen Sie, ob es geändert wurde
privater boolescher Wert isClassModified(String filename) {
boolean returnValue = false;
Datei file = neue Datei(Dateiname);
if (file.lastModified() > lastModified) {
returnValue = true;
}
return returnValue;
}
//Datei von lokal lesen
private byte[] getBytes(String filename) löst eine IOException {
Datei file = neue Datei(Dateiname);
long len = file.length();
lastModified = file.lastModified();
byte raw[] = neues 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();
roh zurückgeben;
}
}
3. Der Kopiercode der Thread-Methode lautet wie folgt: Klasse Thread1 erweitert Thread{
public void run(){
//Geschäftsmethode aufrufen (überprüfen, ob sich die Datei geändert hat)
Thread.currentThread().sleep("100000");
}
Ich hoffe, dass dieser Artikel für die Java-Programmierung aller hilfreich sein wird.