在我们的项目工程里面,经常需要对properties的文件,下面是其实现
test.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/future?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=root
文件解析类实现
import javax.naming.ConfigurationException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
/**
* @author durant.zeng
*/
public class PropertiesParse {
private static final Map<String,String> PROPERTIESMAP;
static {
PROPERTIESMAP = new HashMap<> ();
}
public static void readConfigProperties(String PropertiesPath) throws IOException, ConfigurationException {
InputStream is = PropertiesParse.class.getResourceAsStream ( PropertiesPath);
if(is==null){throw new ConfigurationException ("打开配置文件" + PropertiesPath + "失败" );
}
Properties properties = new Properties ();
//加载文件
properties.load (is);
//获得properties文件的keys集合
Enumeration<Object> keysset = properties.keys();
while (keysset.hasMoreElements ()){
String key = (String) keysset.nextElement ();
String value = properties.getProperty (key);
PROPERTIESMAP.put ( key,value );
}
}
public static String getValue(String key){
return PROPERTIESMAP.get (key);
}
}
测试类:
import javax.naming.ConfigurationException;
import java.io.IOException;
public class PropertiesDemo {
public static void main(String[] args) {
try {
PropertiesParse.readConfigProperties ( "/test.properties" );
} catch (IOException | ConfigurationException e) {
e.printStackTrace ( );
}
System.out.println ( PropertiesParse.getValue ( "jdbc.driver" ));
}
}
测试结果: