public void regBatchFile(String path,int interval)
{
File file=new File(path);
//如果得到的是路径
if(file.isDirectory())
{
//file.list()--->得到这个目录下的所有文件名 数组
for(String s:file.list())
{
String filePath=new StringBuffer(path).append(s).toString();
regSingleFile(filePath,interval);
}
}
}
public void regSingleFile(String path,int interval)
{
FileListener fileTask=null;
//如果是properties文件,调用properties文件加载方法
if(path.endsWith(".properties"))
{
fileTask=new PropertyFileListener(path);
}
//如果是xml文件,调用xml文件加载方法
else if(path.endsWith(".xml"))
{
fileTask=new XMLFileListener(path);
}
else
{
return;
}
//加载文件
fileTask.loadFile();
//定义定时器
Timer timer=new Timer();
//设置执行任务
timer.schedule(fileTask, new Date(), interval);
//得到文件名
String fileName=path.substring(path.lastIndexOf(File.separator)+1, path.length());
//将文件名作为key,其整个文件作为Value放入内存中
FMap.put(fileName, fileTask);
}
/**
* 停止监听
*/
public void desFileListener()
{
//检查FMap中有内容时,不用再监听.
if(FMap.size()>0)
{
Iterator<String>it=FMap.keySet().iterator();
while(it.hasNext())
{
String key=(String)it.next();
FMap.get(key).cancel();
}
}
}
/**
* 加载配置文件配置信息
*/
private Properties loadProperties()
{
Properties prop=new Properties();
InputStreamReader reader=null;
URL url=null;
try
{
if(configFile==null)
{
configFile=defaultConfigFile;
}
//从本项目中读取对应的文件,保证文件名的唯一性
//先读得文件的路径
url=getClass().getClassLoader().getResource(this.defaultConfigFile);
//运用IO流,将其打开
reader=new InputStreamReader(url.openStream());
//用Properties得到加载其内容
prop.load(reader);
//遍历Properties对象看是否有多个对象
Enumeration<?> enu=prop.propertyNames();
logger.info("Load configuration file["+configFile+"] start...");
//如果存在多个对象,一个个遍历将其取出
while(enu.hasMoreElements())
{
String key=(String) enu.nextElement();
logger.info("key:"+key+", value:"+prop.getProperty(key));
}
logger.info("Load configuration file["+configFile+"] success.");
}
catch (Exception e)
{
logger.error(e.getMessage(),e);
}
{
File file=new File(path);
//如果得到的是路径
if(file.isDirectory())
{
//file.list()--->得到这个目录下的所有文件名 数组
for(String s:file.list())
{
String filePath=new StringBuffer(path).append(s).toString();
regSingleFile(filePath,interval);
}
}
}
public void regSingleFile(String path,int interval)
{
FileListener fileTask=null;
//如果是properties文件,调用properties文件加载方法
if(path.endsWith(".properties"))
{
fileTask=new PropertyFileListener(path);
}
//如果是xml文件,调用xml文件加载方法
else if(path.endsWith(".xml"))
{
fileTask=new XMLFileListener(path);
}
else
{
return;
}
//加载文件
fileTask.loadFile();
//定义定时器
Timer timer=new Timer();
//设置执行任务
timer.schedule(fileTask, new Date(), interval);
//得到文件名
String fileName=path.substring(path.lastIndexOf(File.separator)+1, path.length());
//将文件名作为key,其整个文件作为Value放入内存中
FMap.put(fileName, fileTask);
}
/**
* 停止监听
*/
public void desFileListener()
{
//检查FMap中有内容时,不用再监听.
if(FMap.size()>0)
{
Iterator<String>it=FMap.keySet().iterator();
while(it.hasNext())
{
String key=(String)it.next();
FMap.get(key).cancel();
}
}
}
/**
* 加载配置文件配置信息
*/
private Properties loadProperties()
{
Properties prop=new Properties();
InputStreamReader reader=null;
URL url=null;
try
{
if(configFile==null)
{
configFile=defaultConfigFile;
}
//从本项目中读取对应的文件,保证文件名的唯一性
//先读得文件的路径
url=getClass().getClassLoader().getResource(this.defaultConfigFile);
//运用IO流,将其打开
reader=new InputStreamReader(url.openStream());
//用Properties得到加载其内容
prop.load(reader);
//遍历Properties对象看是否有多个对象
Enumeration<?> enu=prop.propertyNames();
logger.info("Load configuration file["+configFile+"] start...");
//如果存在多个对象,一个个遍历将其取出
while(enu.hasMoreElements())
{
String key=(String) enu.nextElement();
logger.info("key:"+key+", value:"+prop.getProperty(key));
}
logger.info("Load configuration file["+configFile+"] success.");
}
catch (Exception e)
{
logger.error(e.getMessage(),e);
}