【java】工具 ————Properties文件解析

简述:

在一些场合下我们为了在不改动代码的情况下对相关方法进行操作或者是在方法执行前必要的参数就必须准备妥当,这时我们就可以采取“配置文件”的方法将相关数据配置进去以达到我们的目的,在众多配置文件中Properties文件是使用较多的一种。

Properties文件采取的是键值对的形式来存储数据的,与java的map十分相似,所以我们用map来存储从Properties文件中解析的数据,又因为存在一个项目可能会使用多个Properties文件来进行配置的情况,所以map可以采取单例模式。

以下是源码和相关注释:

	//容器用static final使得容器只有一份且首地址不变
	private  static final HashMap<String,String> hp;  
	
	//用静态块初始化
	static {
			hp = new HashMap<>();	
	}

	//用输入输出流作为参数进行加载
	public static void Load(InputStream is) {
		Properties a =  new Properties();
		try {
			a.load(is);
		} catch (IOException e) {
			
			e.printStackTrace();
		}
		//得到键集
		Set<Object> st = a.keySet();
		Iterator<Object> it =st.iterator();
		//遍历键集,将所得到的键值对存入容器中
		while(it.hasNext()) {
			String key = (String) it.next();
			String value = a.getProperty(key);
			hp.put(key, value);
		}
	}
	
	//也可以通过导入相对路径
	public static void Open(String path) {
		//建立输入输出流
		InputStream is = Class.class.getResourceAsStream(path);
           
		Load(is);
	}
	
	//根据键取得对应的值
	public static String Make(String key) {
		return hp.get(key);
	}

以下是对上述代码的测试:

首先先创建一个Properties文件:

测试代码:

public class Texts {
	public static void main(String[] args) {
		PropertiesFile.Open("/proxy.properties");
		System.out.println("proxy_type : "+PropertiesFile.Make("proxy_type"));
		System.out.println("name : "+PropertiesFile.Make("name"));
		System.out.println("sex : "+PropertiesFile.Make("sex"));
		System.out.println("age : "+PropertiesFile.Make("age"));
		
	}
}

输出结果:

proxy_type : 1
name : Bob
sex : 1
age : 18

以上便是完整的工具及其测试。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值