XML和String数据替换 DataCache 02

private static Map<String, Hashtable<Object, Object>> getProperties(
String path)
{
File file = new File(path);
logger.info("Properties directory is" + path);
// 读出文件夹中的所有.properties文件
File[] subFiles = file.listFiles(new FilenameFilter()
{
public boolean accept(File dir, String name)
{
return name.indexOf(".properties") != -1;
}
});
// 读文件器
FileReader freader = null;
String fileName = null;
String interfaceName = null;
// 初始化Hashtable的长度和properties文件个数一样
Map<String, Hashtable<Object, Object>> allProperties = new Hashtable<String, Hashtable<Object, Object>>(
subFiles.length);
Hashtable<Object, Object> nameSpaceMap = null;
Hashtable<Object, Object> fieldXpathMap = null;
Hashtable<Object, Object> encryptXpathMap = null;
Hashtable<Object, Object> prefixXpathMap = null;

Properties prop = null;
String key = null;
// 遍历已经过滤出来的.properties,存入Hashtable中
for (File subFile : subFiles)
{
logger.debug("Properties file is:" + subFile.getAbsolutePath());
prop = new Properties();
nameSpaceMap = new Hashtable<Object, Object>(2);
encryptXpathMap = new Hashtable<Object, Object>(2);
fieldXpathMap = new Hashtable<Object, Object>(20);
prefixXpathMap = new Hashtable<Object, Object>(2);
// 读取文件名中的接口名
fileName = subFile.getName();
interfaceName = fileName.substring(0, fileName.indexOf("."));
logger.debug("interfaceName file is:" + interfaceName);
try
{
freader = new FileReader(subFile);
prop.load(freader);
for (Map.Entry<Object, Object> entry : prop.entrySet())
{
key = (String) entry.getKey();
if (key != null && key.startsWith("_namespace_"))
{
nameSpaceMap.put(key.substring(11), entry.getValue());
}
else if (key.startsWith("_encrypt_"))
{
encryptXpathMap.put(key.substring(9), entry.getValue());
}
else if (key.startsWith("_prefix_"))
{
prefixXpathMap.put(key.substring(8), entry.getValue());
}
else
{
fieldXpathMap.put(key, entry.getValue());
}
}
prop = null;
// 将正常的内容 加入allProperties Map中
allProperties.put(interfaceName, fieldXpathMap);
// 将带有命名空间的内容加入allProperties Map中
allProperties.put(interfaceName + "namespace", nameSpaceMap);
// 带有加密的内容加入allProperties Map中
allProperties.put(interfaceName + "encrypt", encryptXpathMap);
// 带有前缀的内容(号码之类)加入allProperties Map中
allProperties.put(interfaceName + "prefix", fieldXpathMap);
}
catch (Exception e)
{
logger.error("Close FileReader failure:" + e.getMessage());
}
finally
{
try
{
if (freader != null)
{
freader.close();
}
}
catch (Exception e2)
{
logger.error("Close FileReader failure:" + e2.getMessage());
}
}
}
return allProperties;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值