您的位置:首页 > 编程语言 > Java开发

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代码:
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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息