保持顺序的 Java Properties 类
import java.util.Collections;
import java.util.Enumeration;
import java.util.LinkedHashSet;
import java.util.Properties;
import java.util.Set;
/**
* OrderedProperties
*/
public class OrderedProperties extends Properties {
private static final long serialVersionUID = -4627607243846121965L;
private final LinkedHashSet<Object> keys = new LinkedHashSet<Object>();
public Enumeration<Object> keys() {
return Collections.<Object> enumeration(keys);
}
public Object put(Object key, Object value) {
keys.add(key);
return super.put(key, value);
}
public Set<Object> keySet() {
return keys;
}
public Set<String> stringPropertyNames() {
Set<String> set = new LinkedHashSet<String>();
for (Object key : this.keys) {
set.add((String) key);
}
return set;
}
}
根据封装好的OrderedProperties类封装
/**
*
* @author xxh
*
*/
final public class PropertiesFile {
private static Map<String,Map<String,String>> files = new HashMap<String,Map<String,String>>();
private PropertiesFile(){}
/**
* 根据properties文件名把对应的属性值装换成map, 获取属性值直接从map中去对应的key
* @param file
* @return
* @throws ExcelException
*/
public static Map<String,String> properties2Map(String file) throws ExcelException{
Map<String,String> map = files.get(file);
if(map != null)//缓存中的map
return map;
map = new LinkedHashMap<String,String>();
System.err.println("读取配置文件-------------------"+file);
Properties props = null;
try {
props = new OrderedProperties();
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("properties_config/"+file));
} catch (IOException e) {
throw new RuntimeException("类路径properties_config下需要放置["+file+"]文件!", e);
}catch(NullPointerException e){
throw new RuntimeException("类路径properties_config下需要放置["+file+"]文件!", e);
}
for(Object key : props.keySet()){
map.put((String)key, (String)props.get(key));
}
props.clear();
files.put(file, map);
return map;
}
}
分享到:
相关推荐
java对properties的操作工具类 属性文件
此工具类只用于Java后端在操作Properties文件的时候写的工具类,方便properties文件的存取操作
读取properties文件工具类。使用时直接将工具类放到Java项目中,调用读取properties文件的方法即可。
通过程序生成properties文件的工具类,并可根据添加顺序生成,可添加注释,调用步骤如下: 1.OutputOrderProperties p = new OutputOrderProperties(); 2.FileInputStream fs = new FileInputStream("文件路径"); 3....
利用Java的Properties 类读取配置文件信息! 读取Properties文件的例子
java properties java应用实例 java properties java应用实例
1.OutputOrderProperties p = new OutputOrderProperties(); 2.FileInputStream fs = new FileInputStream("文件路径"); 3.p.load(new InputStreamReader(fs, "utf-8")); 4.p.put("jdbc.name", dbConfig.getJdbcName...
封装得很好的一个properties操作类
java连接SqlServer完整代码,工具类,jdbc JDBC工具类的构建 1.资源释放 见https://mp.csdn.net/postedit/86577443 2.驱动防二次注册 ``` Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //...
Java自带的Properties不好用,自己写了一个直接读写类,支持配置文件描述,支持对像值的描述,支持指定文件编码(默认UTF-8)
Java .properties中文资源批量转换工具和用法
利用java的反射解析Properties文件转成对象 /** * 解析properties文件为对象 * @param * @param propPath * @param cls * @return * @throws InstantiationException * @throws ...
解决JAVA读取properties中文乱码问题
CommentedProperties代码 博文链接:https://brokendreams.iteye.com/blog/1932875
下载了就可以直接用。默认路径在项目随意source目录下,获取时直接PropertiesUtil.getInstance().getPropertyValue("xx.properties", "value");
java 改变Properties文件中的键值 java 改变Properties文件中的键值
字符串工具类/数据类型转换类/集合工具类/数组工具类/Properties文件操作类/常用流操作工具类/编码工具类/Json工具类/日期工具类/下载文件工具类/解压ZIP工具类/文件编码转码
ava中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去...
java开发中常用到的工具类。附有帮助文档。可以方便查看。如果需要源码的可以联系我。主要包括http-post请求工具类。日期工具类。字符串工具类。配置文件properties读取工具类。
java 读取properties文件代码