利用Java读取配置文件一般分两种方法,分别是静态读取和动态读取。
- 静态读取:在初始化的时候就把配置项一次全部读入,并保存在静态成员变量中
- 动态读取:每次加载的时候读取一遍
先介绍一个静态的读取方法,读取文件src文件下的Config.propertise配置文件,直接看代码:
package common.util;
import java.util.ResourceBundle;
/**
* 用于读取配置参数
*/
public class Config {
private static final ResourceBundle resourceBundle = ResourceBundle.getBundle("Config");
public static String get(String key) {
return resourceBundle.getString(key);
}
/**
* 获取互联网网关IP
*
* @return
*/
public static String getIp() {
return Config.get("Ip");
}
/**
* 获取互联网网关端口号
*
* @return
*/
public static int getPort() {
return Integer.parseInt(Config.get("Port"));
}
/**
* 获取互联网编号
*
* @return
*/
public static String getId() {
return Config.get("Id");
}
/**
* 获取sharedSecret
*
* @return
*/
public static String getSpSharedSecret() {
return Config.get("sharedSecret");
}
/**
* 获取链接的次数
*
* @return
*/
public static int getConnectCount() {
return Integer.parseInt(Config.get("connectCount"));
}
/**
* 获取链接的超时时间
*
* @return
*/
public static int getTimeOut() {
return Integer.parseInt(Config.get("timeOut"));
}
}
接下来介绍一些动态的读取配置文件的方法,同样的,读取文件src文件下的Config.propertise配置文件,直接看代码吧:
package common.util;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PropertiesLoaderUtils;
public class ExcutePro {
// 读取.properties 结尾的配置文件用,getP, getParam
public static Map<String, String> getP(String path) throws Exception {
Resource resource = new ClassPathResource(path);
Properties props = PropertiesLoaderUtils.loadProperties(resource);
Map<String, String> param = new HashMap<String, String>((Map) props);
return param;
}
}
使用方法:
public static void main(String[] args) {
Map<String, String> app = null;
try {
app = ExcutePro.getP("Config.properties");
} catch (Exception e2) {
e2.printStackTrace();
}
String msgSic_port = app.get("Ip");
String msgSic_port = app.get("Port");
String msgSic_ip = app.get("sharedSecret");
String msgSic_port = app.get("connectCount");
String msgSic_port = app.get("timeOut");
System.out.println(Ip);
System.out.println(Port);
System.out.println(sharedSecret);
System.out.println(connectCount);
System.out.println(timeOut);
}
项目推荐
DC3是基于Spring Cloud的开源可分布式物联网(IOT)平台,用于快速开发、部署物联设备接入项目,是一整套物联系统解决方案。