public class GetProps {
private static GetProps instance = new GetProps();
private final Logger logger = LoggerFactory.getLogger(this.getClass());
private GetProps() {
}
/**
* 读取配置文件,获取所有的属性
*
* @param filePath 文件路径
*/
public Map<String, String> getValue(String filePath) {
Map<String, String> amap = new HashMap<>();
try {
Properties prop = new Properties();
prop.load(this.getClass().getResourceAsStream(filePath));
for (String key : prop.stringPropertyNames()) {
amap.put(key, prop.getProperty(key));
}
} catch (FileNotFoundException e) {
logger.error("配置文件读取失败;文件未找到");
e.printStackTrace();
} catch (IOException e) {
logger.error("配置文件读取失败;" + e.getStackTrace());
e.printStackTrace();
}
return amap;
}
//方法没有同步代码,调用效率高
public static GetProps getInstance() {
return instance;
}
}
Java遍历Properties的所有的元素,四种方法详细总结
/**
* 输出properties的key和value
*/
public static void printProp(Properties properties) {
System.out.println("---------(方式一)------------");
for (String key : properties.stringPropertyNames()) {
System.out.println(key + "=" + properties.getProperty(key));
}
System.out.println("---------(方式二)------------");
Set<Object> keys = properties.keySet();//返回属性key的集合
for (Object key : keys) {
System.out.println(key.toString() + "=" + properties.get(key));
}
System.out.println("---------(方式三)------------");
Set<Map.Entry<Object, Object>> entrySet = properties.entrySet();//返回的属性键值对实体
for (Map.Entry<Object, Object> entry : entrySet) {
System.out.println(entry.getKey() + "=" + entry.getValue());
}
System.out.println("---------(方式四)------------");
Enumeration<?> e = properties.propertyNames();
while (e.hasMoreElements()) {
String key = (String) e.nextElement();
String value = properties.getProperty(key);
System.out.println(key + "=" + value);
}
}
原文链接:https://blog.csdn.net/qq_27093465/article/details/71108181