使用Properties类操作properties配置文件

使用Properties类操作properties配置文件

一、通过jdk提供的java.util.Properties类

这个类是继承java.util.HashTable,间接地实现了Map接口,可以使用相应的方法来操作文件,但不建议使用像put、putAll这两个方法,因为put方法不仅允许存入String类型的value,还可以存入Object类型的。

因此Properties类提供了getProperty()setProperty() 方法来操作文件,同时使用store()save()(已过时) 来保存属性值(把属性值写入.properties配置文件)

在使用之前需要加载属性文件,它提供了两个方法:
load()loadFromXML() ;

load()方法有两个重载,load(InputStream inStream)load(Reader reader) ,所以,可根据不同的方式来加载属性文件。

可根据不同的方式来获取InputStream,如:

  1. 通过当前类加载器的getResourceAsStream方法获取
InputStream inStream = TestProperties.class.getClassLoader().getResourceAsStream("test.properties");
  1. 从文件获取
InputStream inStream = new FileInputStream(new File("filePath"));
  1. 也是通过类加载器来获取,和第一种一样
InputStream in = ClassLoader.getSystemResourceAsStream("filePath");
  1. 在servlet中,还可以通过context来获取InputStream
InputStream in = context.getResourceAsStream("filePath");
  1. 通过URL来获取
URL url = new URL("path");
InputStream inStream = url.openStream();

读取方法如下

Properties prop = new Properties();
prop.load(inStream);
String key = prop.getProperty("username");

//String key = (String) prop.get("username");

具体用法,这里贴上读取数据库的连接地址的例子

public class PropertiesUtil {
//这里是properties配置文件的地址
	public static final String PropertiesPath="sqlinfo.properties";
	
	
	public static String getvalues(String key){
		String vlaues=PropertiesUtil.getValues(PropertiesPath, key);
		return vlaues;
	}
	
	//重载
	public static String getValues(String path,String key) {
	//创建实例对象
		Properties pps=new Properties();
	//通过当前类的加载器的getResourceAsStream()获取InputStream
		InputStream is=PropertiesUtil.class.getClassLoader().getResourceAsStream(path);
		
		String values=null;
		try {
		//读取文件
			pps.load(is);
		//getProperty()通过键得到值	
			values=pps.getProperty(key);
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		return values;
	}

}

本文参考:CSDN博主「MikanMu」的原创文章
原文链接:https://blog.csdn.net/mhmyqn/article/details/7683909

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值