Java获取Properties文件中值的方法
2016-05-27 09:35
579 查看
一、普通方法获取配置文件值
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Properties;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
public class Test {
// 1。使用java.util.Properties 类的load()方法
// 示例:
public static String getProperties_1(String url) throws IOException {
InputStream in = new BufferedInputStream(new FileInputStream(url));
Properties p = new Properties();
p.load(in);
return p.getProperty("jdbc.type");
}
// 2。使用java.util.ResourceBundle类的getBundle()方法
// 示例:
public static void getProperties_2(String url) {
ResourceBundle rb = ResourceBundle.getBundle(url);
Enumeration<String> keys = rb.getKeys();
while (keys.hasMoreElements()){
System.out.println(rb.getString(keys.nextElement()));
}
}
// 3。使用java.util.PropertyResourceBundle类的构造函数
// 示例:
public static void getProperties_3(String url) throws IOException {
InputStream in = new BufferedInputStream(new FileInputStream(url));
ResourceBundle rb = new PropertyResourceBundle(in);
Enumeration<String> keys = rb.getKeys();
while (keys.hasMoreElements()){
System.out.println(rb.getString(keys.nextElement()));
}
}
// 4。使用class变量的getResourceAsStream()方法
// 示例:
public static String getProperties_4(String url) throws IOException {
InputStream in = Test.class.getResourceAsStream(url);
Properties p = new Properties();
p.load(in);
return p.getProperty("jdbc.url");
}
// 5。使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法
// 示例:
public static String getProperties_5(String url) throws IOException {
InputStream in = Test.class.getClassLoader().getResourceAsStream(url);
Properties p = new Properties();
p.load(in);
return p.getProperty("jdbc.url");
}
// 6。使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法
// 示例:
public static String getProperties_6(String url) throws IOException {
InputStream in = ClassLoader.getSystemResourceAsStream(url);
Properties p = new Properties();
p.load(in);
return p.getProperty("jdbc.url");
}
//
// 补充
// Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法
// 示例:
// public static Properties getProperties_8(String url) {
// InputStream in = context.getResourceAsStream(url);
// Properties p = new Properties ();
// p.load(in);
// }
public static void main(String[] args) throws IOException {
//需要将文件放置到项目根目录下面
System.out.println(getProperties_1("settings.properties"));
System.out.println("----------");
//需要将文件放置到class文件同级目录下面
getProperties_2("settings");
System.out.println("----------");
getProperties_3("settings.properties");
System.out.println("----------");
System.out.println(getProperties_4("settings.properties"));
System.out.println("----------");
System.out.println(getProperties_5("settings.properties"));
System.out.println("----------");
System.out.println(getProperties_6("settings.properties"));
}
}二、Spring 的 @Value注解的方式
Spring xml文件需要的配置 <!-- 加载应用属性实例,可通过 @Value("#{APP_PROP['jdbc.driver']}") String jdbcDriver 方式引用 -->
<util:properties id="APP_PROP" location="classpath:settings.properties" local-override="true"/>
java代码:
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Properties;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
public class Test {
// 1。使用java.util.Properties 类的load()方法
// 示例:
public static String getProperties_1(String url) throws IOException {
InputStream in = new BufferedInputStream(new FileInputStream(url));
Properties p = new Properties();
p.load(in);
return p.getProperty("jdbc.type");
}
// 2。使用java.util.ResourceBundle类的getBundle()方法
// 示例:
public static void getProperties_2(String url) {
ResourceBundle rb = ResourceBundle.getBundle(url);
Enumeration<String> keys = rb.getKeys();
while (keys.hasMoreElements()){
System.out.println(rb.getString(keys.nextElement()));
}
}
// 3。使用java.util.PropertyResourceBundle类的构造函数
// 示例:
public static void getProperties_3(String url) throws IOException {
InputStream in = new BufferedInputStream(new FileInputStream(url));
ResourceBundle rb = new PropertyResourceBundle(in);
Enumeration<String> keys = rb.getKeys();
while (keys.hasMoreElements()){
System.out.println(rb.getString(keys.nextElement()));
}
}
// 4。使用class变量的getResourceAsStream()方法
// 示例:
public static String getProperties_4(String url) throws IOException {
InputStream in = Test.class.getResourceAsStream(url);
Properties p = new Properties();
p.load(in);
return p.getProperty("jdbc.url");
}
// 5。使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法
// 示例:
public static String getProperties_5(String url) throws IOException {
InputStream in = Test.class.getClassLoader().getResourceAsStream(url);
Properties p = new Properties();
p.load(in);
return p.getProperty("jdbc.url");
}
// 6。使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法
// 示例:
public static String getProperties_6(String url) throws IOException {
InputStream in = ClassLoader.getSystemResourceAsStream(url);
Properties p = new Properties();
p.load(in);
return p.getProperty("jdbc.url");
}
//
// 补充
// Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法
// 示例:
// public static Properties getProperties_8(String url) {
// InputStream in = context.getResourceAsStream(url);
// Properties p = new Properties ();
// p.load(in);
// }
public static void main(String[] args) throws IOException {
//需要将文件放置到项目根目录下面
System.out.println(getProperties_1("settings.properties"));
System.out.println("----------");
//需要将文件放置到class文件同级目录下面
getProperties_2("settings");
System.out.println("----------");
getProperties_3("settings.properties");
System.out.println("----------");
System.out.println(getProperties_4("settings.properties"));
System.out.println("----------");
System.out.println(getProperties_5("settings.properties"));
System.out.println("----------");
System.out.println(getProperties_6("settings.properties"));
}
}二、Spring 的 @Value注解的方式
Spring xml文件需要的配置 <!-- 加载应用属性实例,可通过 @Value("#{APP_PROP['jdbc.driver']}") String jdbcDriver 方式引用 -->
<util:properties id="APP_PROP" location="classpath:settings.properties" local-override="true"/>
java代码:
package cn.yufu.system.modules.oa.merchant.web; import cn.yufu.system.common.web.BaseController; import cn.yufu.system.modules.oa.merchant.service.ActBusApprovalService; @Controller @RequestMapping(value = "${adminPath}/merchant/actBusApproval") public class ActBusApprovalController extends BaseController { @Autowired private ActBusApprovalService actBusApprovalService; // APP_PROP 与配置文件的id相同 @Value("#{APP_PROP['fileUploadPath']}") private String uploadFilePath; }
相关文章推荐
- 使用C#实现读取系统配置文件的代码实例讲解
- Powershell Profiles配置文件的存放位置介绍
- PowerShell入门教程之创建和使用配置文件实例
- SERV-U 的配置文件详解
- php.ini 配置文件的深入解析
- redis2.8配置文件中文翻译版
- PHP配置文件php.ini中打开错误报告的设置方法
- C#中读取App.config配置文件代码实例
- c++实现逐行读取配置文件写入内存的示例
- 关于session在PHP5的配置文件中的详细设置参数说明
- MySQL 配置文件my.cnf 例子最详细翻译
- apache 配置文件解说
- Android 读取Properties配置文件的小例子
- PHP 配置文件中open_basedir选项作用
- .net 读取非标准配置文件的小例子
- APACHE 配置文件中文版 httpd.conf FOR Apache 2.2.13
- 读取spring配置文件的方法(spring读取资源文件)
- PHPMyadmin 配置文件详解(配置)
- C# WinForm开发中使用XML配置文件实例
- Apache配置文件中的deny与allow小结