六种获取配置properties文件的方法
总结一下六种获取配置properties文件的方法,代码如下:
package com.xujingyang.test ; import java.io.BufferedInputStream ;
import java.io.FileInputStream ;
import java.io.InputStream ;
import java.util.Locale ;
import java.util.Properties ;
import java.util.PropertyResourceBundle ;
import java.util.ResourceBundle ;
import org.junit.Test ; /**
* @descript 六种获取配置文件的方法,注意各种的路径的问题
* @author xujingyang
* @time 2017年5月15日下午4:23:18
*/
public class TestReadProperties { /**
* 1、使用java.util.Properties类的load()方法
*/
@Test
public void read1(){
try {
InputStream stream=new BufferedInputStream(new FileInputStream("src/my.properties"));
Properties p=new Properties();
p.load(stream);
String name = p.get("name").toString() ;
String age = p.get("age").toString() ;
System.out.println(name+":"+age) ;
} catch (Exception e) {
e.printStackTrace();
}
} /**
* 2、使用java.util.ResourceBundle类的getBundle()方法
*/
@Test
public void read2(){
try {
ResourceBundle bundle = ResourceBundle.getBundle("my", Locale.getDefault()) ;
String name = bundle.getString("name");
String age = bundle.getString("age");
System.out.println(name+":"+age) ;
} catch (Exception e) {
e.printStackTrace();
}
} /**
*3、 使用java.util.PropertyResourceBundle类的构造函数
*/
@Test
public void read3(){
try {
InputStream stream=new BufferedInputStream(new FileInputStream("src/my.properties"));
ResourceBundle bundle=new PropertyResourceBundle(stream);
String name = bundle.getString("name");
String age = bundle.getString("age");
System.out.println(name+":"+age) ;
} catch (Exception e) {
e.printStackTrace();
}
} /**
*4、 使用class变量的getResourceAsStream()方法
*/
@Test
public void read4(){
try {
InputStream stream = TestReadProperties.class.getResourceAsStream("/my.properties") ;
Properties p=new Properties();
p.load(stream);
String name = p.get("name").toString() ;
String age = p.get("age").toString() ;
System.out.println(name+":"+age) ;
} catch (Exception e) {
e.printStackTrace();
}
} /**
*5、 使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法
*/
@Test
public void read5(){
try {
InputStream stream = TestReadProperties.class.getClassLoader().getResourceAsStream("my.properties") ;
Properties p=new Properties();
p.load(stream);
String name = p.get("name").toString() ;
String age = p.get("age").toString() ;
System.out.println(name+":"+age) ;
} catch (Exception e) {
e.printStackTrace();
}
} /**
*6、 使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法
*/
@Test
public void read6(){
try {
InputStream stream = ClassLoader.getSystemResourceAsStream("my.properties");
Properties p=new Properties();
p.load(stream);
String name = p.get("name").toString() ;
String age = p.get("age").toString() ;
System.out.println(name+":"+age) ;
} catch (Exception e) {
e.printStackTrace();
}
} }
配置文件:
name的值是小明,这里配置文件会自动编码
补充:
Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法
示例:InputStream in = context.getResourceAsStream(path);
Properties p = new Properties();
p.load(in);
六种获取配置properties文件的方法的更多相关文章
- SpringMVC加载配置Properties文件的几种方式
最近开发的项目使用了SpringMVC的框架,用下来感觉SpringMVC的代码实现的非常优雅,功能也非常强大, 网上介绍Controller参数绑定.URL映射的文章都很多了,写这篇博客主要总结一下 ...
- springboot-项目获取resources下文件的方法
spring项目获取resources下文件的方法 最近写读取模板文件做一些后续的处理,将文件放在了项目的resources 下,发现了一个好用的读取方法: 比如上边是你需要读取的文件: 读 ...
- 解决IntelliJ IDEA无法读取配置*.properties文件的问题
idea对这些配置的文件方式很明显和eclipse是不同的.在idea中有一个 Content Roots的概念.需要为每一个folder配置相应的Content Roots.Content Root ...
- JS读取.properties文件的方法
假设有JavaScript文件叫做:readproperties.js,这个文件需要读取config.properties这个配置文件,步骤如下: 1. 下载插件jquery.i18n.proper ...
- 在JavaScript文件中读取properties文件的方法
假设有JavaScript文件叫做:readproperties.js,这个文件需要读取config.properties这个配置文件,步骤如下: 1. 下载插件jquery.i18n.proper ...
- java读取Properties文件的方法
resource.properties的内容: com.tsinkai.ettp.name=imooc com.tsinkai.ettp.website=www.imooc.com com.tsink ...
- 读取根目录src下的指定配置properties文件内容
代码如下: package com.chen.system.util; import java.io.File; import java.io.FileInputStream; import java ...
- 【java】获取解析资源文件的方法
关于资源文件的读取,有很多种方法,下面补充了多种方法 1.java.util.ResourceBundle 使用java自带的util包下的ResourceBundle类获取,使用方法最简单 //获取 ...
- Asp.NetCore3.1 WebApi 获取配置json文件中的数据
下面只是做一个简单的测试: 1:定义好appsetting.Json文件的配置信息如下: { "Logging": { "LogLevel": { " ...
随机推荐
- 用cocos2d-html5做的消除类游戏《英雄爱消除》——概述
在bbs.html5china.com论坛学习了MV和老马的小熊蘑菇后我也自己模仿他们做了这样子一个游戏,权当技术交流学习,现在附上游戏截图和源码. 游戏截图: 1.系统菜单界面: 2.游戏界面 3. ...
- MVC ViewBag不能使用在工程文件中添加引用
在工程文件中 <ItemGroup> // ... </ItemGroup> 添加引用 <Reference Include="Microsoft.CSharp ...
- HDR(High Dynamic Range) - 高动态范围
1. Dynamic Range 动态范围是指一个场景的最亮和最暗部分之间的相对比值 2. Tone-mapping 现实真正存在的亮度差,即最亮的物体亮度和最暗的物体亮度之比为 , 而人类的眼睛 ...
- 什么是gitlab CI ?CI代表什么?
CI是Continuous Integration的简称,就是持续集成的意思. 就是说你代码改动了,测试了,提交了,持续集成系统会自动构建(编译等等).持续集成的理念是每个提交的版本都应该是可交付的, ...
- POJ 2230 Watchcow 【欧拉路】
Watchcow Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 6336 Accepted: 2743 Specia ...
- C/C++ 库函数 是否调用 WinAPI
1. 跟了一个函数 fopen,简单测试代码为: #include<stdio.h> #define F_PATH "e:\\Z.txt" int main(void) ...
- JS命令模式个人理解
JS命令模式个人理解 //BODY部分<body> <button id="execute">打开电视</button> <button ...
- Luogu P1196 [NOI2002]银河英雄传说:带权并查集
题目链接:https://www.luogu.org/problemnew/show/P1196 题意: 有30000个战舰队列,编号1...30000. 有30000艘战舰,编号1...30000, ...
- spring+mybatis的事务配置
出自:http://kinglixing.blog.51cto.com/3421535/723870 定义一个实体类:Emp.java package com.lixing.scm.entity; p ...
- 分享知识-快乐自己:快速理解(Java内部类)
1):成员内部类 什么是内部类?: 内部类就是在一个类中定义另一个类. 定义语法: 使用命令行查看编译 产生的文件: 如何生成内部类对象? 创建规则:内部类对象 需要先声明外部类对象. 内部类以及外部 ...