Properties的概述

 Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。

    具体作用:      是配置文件

主要的作用是通过修改配置文件可以方便的修改代码中的参数,实现不用改class文件即可灵活变更参数。

解释:java运行中java文件会变成class文件,之后无法通过反编译找到原样的代码,这样的话,如果java类中某个参数变更,就很难灵活的实现参数修改,这个时候properties 文件就能很灵活的实现配置,减少代码的维护成本和提高开发效率。

    特点:

        1、Map接口的子类,map中的方法都可以用。

        2、该集合没有泛型。键值都是字符串。

        3、它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。键值的来源也可以是持久化的设备。

        4、有和流技术相结合的方法。

    常用方法

         public Object setProperty(String key, String value)调用 Map 的方法 put。

         public Set<String> stringPropertyNames()返回此属性列表中的键集,

         public String getProperty(String key)用指定的键在此属性列表中搜索属性

    public class PropsDemo_01 {
	@Test
	public void demo01(){
		
		//Properties对象 特殊Map<String,String>
		
		//1 创建对象
		Properties props = new Properties();
		
		//2 设置数据
		//props.put(key, value)
		props.setProperty("k01", "v01");
		props.setProperty("k02", "v02");
		props.setProperty("k03", "v03");
		
		//3 获得指定名称的数据
		String prop = props.getProperty("k02");
		System.out.println(prop);
		
		//4获得所有名称,并遍历获得所有的数据
		System.out.println("--------------");
		Set<String> names = props.stringPropertyNames();
		for(String name : names){
			String value = props.getProperty(name);
			System.out.println(name + " : " + value);
		}
	}
}

将集合中内容存储到文件

        store(OutputStream,comments)

        store(Writer,comments);

        把集合中的数据,保存到指定的流所对应的文件中,参数comments代表对描述信息

@Test
	public void demo01() throws Exception{
		
		//将内容写入到文件
		// * Properties 对应一种特殊文件:*.properties
		// * 一行表示一个键值对,格式:k=v
		
		//1 创建对象
		Properties props = new Properties();
		
		//2 设置数据
		//props.put(key, value)
		props.setProperty("k01", "v01极客营 ");
		props.setProperty("k02", "v02程序员");
		props.setProperty("k03", "v03");
		
		//3 将props写入到硬盘
		Writer writer = new OutputStreamWriter(new FileOutputStream("1.properties"),"UTF-8");
		props.store(writer, "描述");
		writer.close();
		
	}

 读取文件中的数据,并保存到集合

        load(InputStream) 

        load(Reader) 

        把指定流所对应的文件中的数据,读取出来,保存到Propertie集合中

@Test
	public void demo02() throws Exception{
		//从properties文件中获得数据
		
		//1 获得资源流
		Reader reader = new InputStreamReader(new FileInputStream("1.properties"),"UTF-8");
		
		//2 通过Properties对象加载流
		Properties props = new Properties();
		props.load(reader);
		
		//3 遍历所有
		for(String name : props.stringPropertyNames()){
			String value = props.getProperty(name);
			System.out.println(name + " @ " +  value);
		}	
	}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值