资料监听管理篇FileManager 03
文件监听管理篇FileManager 03
finally
{
try
{
if(reader!=null)
{
reader.close();
}
}
catch (Exception e2)
{
logger.error("Can not close file:"+url.getFile(),e2);
}
}
return prop;
}
/**
* 得到配置文件
*/
public static FileListener getFileListener(String fileName)
{
//先检查Map中是否有值.
checkFMap();
//根据Key得到具体的对象
return FMap.get(fileName);
}
/**
* 检查是否有加载配置文件
*/
public static void checkFMap()
{
//先检查Map中是否有值,
if(FMap.size()==0)
{
synchronized (FileManager.class)
{
if(FMap.size()==0)
{
//启动监听
startService();
}
}
}
}
public static Properties getProperties(String fileName)
{
//从FMap中根据文件名,得到FileListener对象.
FileListener listener=getFileListener(fileName);
if(null==listener)
{
logger.error("Can not find the fileListener:"+fileName);
return null;
}
//得到FileListener对象之后,再调用方法得到具体的Properties
return listener.getProperties();
}
public static String getProperty(String fileName,String key)
{
FileListener listener=getFileListener(fileName);
//如果取不到昨听的文件返回空值
if(listener==null)
{
logger.error("Can not find the fileListener:"+ fileName);
return null;
}
//在PropertyFileListener类中先得到Properties中再根据key得到其Value
return listener.getPropertyValue(key);
}
public static String getProperty(String fileName, String key,
String defaultValue)
{
//根据文件名和Key先调用本类中的getProperty方法.
String value = getProperty(fileName, key);
if (value == null)
{
value = defaultValue;
}
return value;
}
/**
* 遍历所有的枚举文件取值方法,主要是兼容之前的版 本所用
*
*/
public static String getPropertyFromAllEnumerates(String key)
{
//先检查Map中是否有内容
checkFMap();
String result=null;
//遍历Map中的内容得到所有的key值.
Iterator<String> it=FMap.keySet().iterator();
while(it.hasNext())
{
String tempKey=it.next();
//根据 key得到FileListener对象
FileListener tempListener=FMap.get(tempKey);
//将FileListener对象指引为XMLFileListener对象
if(tempListener instanceof XMLFileListener)
{
//根据key得到 xml文件中所对应的值.
String tempResult=tempListener.getPropertyValue(key);
if(tempResult != null)
{
result=tempResult;
break;
}
}
}
return result;
}
finally
{
try
{
if(reader!=null)
{
reader.close();
}
}
catch (Exception e2)
{
logger.error("Can not close file:"+url.getFile(),e2);
}
}
return prop;
}
/**
* 得到配置文件
*/
public static FileListener getFileListener(String fileName)
{
//先检查Map中是否有值.
checkFMap();
//根据Key得到具体的对象
return FMap.get(fileName);
}
/**
* 检查是否有加载配置文件
*/
public static void checkFMap()
{
//先检查Map中是否有值,
if(FMap.size()==0)
{
synchronized (FileManager.class)
{
if(FMap.size()==0)
{
//启动监听
startService();
}
}
}
}
public static Properties getProperties(String fileName)
{
//从FMap中根据文件名,得到FileListener对象.
FileListener listener=getFileListener(fileName);
if(null==listener)
{
logger.error("Can not find the fileListener:"+fileName);
return null;
}
//得到FileListener对象之后,再调用方法得到具体的Properties
return listener.getProperties();
}
public static String getProperty(String fileName,String key)
{
FileListener listener=getFileListener(fileName);
//如果取不到昨听的文件返回空值
if(listener==null)
{
logger.error("Can not find the fileListener:"+ fileName);
return null;
}
//在PropertyFileListener类中先得到Properties中再根据key得到其Value
return listener.getPropertyValue(key);
}
public static String getProperty(String fileName, String key,
String defaultValue)
{
//根据文件名和Key先调用本类中的getProperty方法.
String value = getProperty(fileName, key);
if (value == null)
{
value = defaultValue;
}
return value;
}
/**
* 遍历所有的枚举文件取值方法,主要是兼容之前的版 本所用
*
*/
public static String getPropertyFromAllEnumerates(String key)
{
//先检查Map中是否有内容
checkFMap();
String result=null;
//遍历Map中的内容得到所有的key值.
Iterator<String> it=FMap.keySet().iterator();
while(it.hasNext())
{
String tempKey=it.next();
//根据 key得到FileListener对象
FileListener tempListener=FMap.get(tempKey);
//将FileListener对象指引为XMLFileListener对象
if(tempListener instanceof XMLFileListener)
{
//根据key得到 xml文件中所对应的值.
String tempResult=tempListener.getPropertyValue(key);
if(tempResult != null)
{
result=tempResult;
break;
}
}
}
return result;
}