Java获取Properties文件中值的方法

一、普通方法获取配置文件值

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;
	

}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值