1、基于ClassLoader读取配置文件
优点是:可以在非Web应用中读取配置资源信息,可以读取任意的资源文件信息。
缺点:只能加载类classes下面的资源文件。
注意:该方式只能读取类路径下的配置文件,有局限但是如果配置文件在类路径下比较方便。
相对路径, properties文件需在classpath目录下,
比如:config.properties在包com.test.config下,
路径就是/com/test/config/config.properties
 
1 Properties properties = new Properties();
2 // 使用ClassLoader加载properties配置文件生成对应的输入流
ClassLoader loader = Thread.currentThread().getContextClassLoader();
if (loader == null) {
loader = GameServer.class.getClassLoader();
}
InputStream inputStream = loader.getResourceAsStream("config/gameServer.properties");
3 InputStream in = PropertiesMain.class.getClassLoader().getResourceAsStream("config/config.properties");
4 // 使用properties对象加载输入流5
properties.load(in);
6 //获取key对应的value值7 
 properties.getProperty(String key);
 
2、基于 InputStream 读取配置文件
注意:该方式的优点在于可以读取任意路径下的配置文件
使用缓冲输入流读取配置文件,然后将其加载,再按需操作
绝对路径或相对路径, 如果是相对路径,则从当前项目下的目录开始计算,
如:当前项目路径/config/config.properties,
相对路径就是config/config.properties
1 Properties properties = new Properties();
2 // 使用InPutStream流读取properties文件3
BufferedReader bufferedReader = new BufferedReader(new FileReader("E:/config.properties"));
4 properties.load(bufferedReader);
5 // 获取key对应的value值6 properties.getProperty(String key);
 
3. 根据文件名使用spring中的工具类进行解析
 * filePath是相对路径,文件需在classpath目录下
 * 比如:config.properties在包com.test.config下,
 * 路径就是com/test/config/config.properties
Properties properties1 = PropertiesLoaderUtils.loadAllProperties("config/gameServer.properties");
System.out.println(properties1.getProperty("game.serever.id"));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
posted on 2021-06-29 11:06  jeolyli  阅读(214)  评论(0编辑  收藏  举报