文件监听管理篇FileManager 02

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);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值