import java.io.File;
import java.util.Properties;
import java.util.TimerTask;
import org.apache.log4j.Logger;
public abstract class FileListener extends TimerTask
{
/**
* 监听器监听的文件
*/
protected File file=null;
/**
* 最后一次修改时间
*/
protected long lastModified=0;
/**
* 文件的键值对象
*/
protected Properties prop=new Properties();
private Logger logger=Logger.getLogger(FileListener.class);
/**
* 监听定时运行方法 主要确认文件是否更新,如果理新
* 则读取文件最新键值 对。
*/
public void run()
{
//确认文件是否更新
if(isFileUpdate())
{
logger.info("The properties filw["+getPath()+"] was modified.");
//加载文件
loadFile();
}
}
/**
* 确认文件是否更新,由子类各自实现
* @return 文件有更新,返回true,否则返回false
*/
public abstract boolean isFileUpdate();
/**
* 加载文件,将文件的内容以键值对保存,由子类实现
*/
public abstract void loadFile();
/**
* 根据键返回 属性值,由子类实现
*/
public abstract String getPropertyValue(String key);
/**
* 返回文件解析后的Properties对像
*/
public Properties getProperties()
{
return prop;
}
/**
* 返回文件名称
*/
public String getFileName()
{
return file.getName();
}
/**
* 返回文件路径
*/
public String getPath()
{
return file.getPath();
}
/**
* 返回文件
*/
public File getFile()
{
return file;
}
}
import java.util.Properties;
import java.util.TimerTask;
import org.apache.log4j.Logger;
public abstract class FileListener extends TimerTask
{
/**
* 监听器监听的文件
*/
protected File file=null;
/**
* 最后一次修改时间
*/
protected long lastModified=0;
/**
* 文件的键值对象
*/
protected Properties prop=new Properties();
private Logger logger=Logger.getLogger(FileListener.class);
/**
* 监听定时运行方法 主要确认文件是否更新,如果理新
* 则读取文件最新键值 对。
*/
public void run()
{
//确认文件是否更新
if(isFileUpdate())
{
logger.info("The properties filw["+getPath()+"] was modified.");
//加载文件
loadFile();
}
}
/**
* 确认文件是否更新,由子类各自实现
* @return 文件有更新,返回true,否则返回false
*/
public abstract boolean isFileUpdate();
/**
* 加载文件,将文件的内容以键值对保存,由子类实现
*/
public abstract void loadFile();
/**
* 根据键返回 属性值,由子类实现
*/
public abstract String getPropertyValue(String key);
/**
* 返回文件解析后的Properties对像
*/
public Properties getProperties()
{
return prop;
}
/**
* 返回文件名称
*/
public String getFileName()
{
return file.getName();
}
/**
* 返回文件路径
*/
public String getPath()
{
return file.getPath();
}
/**
* 返回文件
*/
public File getFile()
{
return file;
}
}