2016.7.16 properties类的应用操作

properties类的操作,主要对xxx.properties文件进行操作。其主要的操作就是读跟写的操作。下面是简单的指令介绍:

1. getProperty ( String key),用指定的键在此属性列表中搜索属性。也就是通过参数 key ,得到 key 所对应的 value。

2. load ( InputStream inStream),从输入流中读取属性列表(键和元素对)。通过对指定的文件(比如说上面的 test.properties 文件)进行装载来获取该文件中的所有键 - 值对。以供 getProperty ( String key) 来搜索。

3. setProperty ( String key, String value) ,调用 Hashtable 的方法 put 。他通过调用基类的put方法来设置 键 - 值对。

4. store ( OutputStream out, String comments),以适合使用 load 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。与 load 方法相反,该方法将键 - 值对写入到指定的文件中去。

5. clear (),清除所有装载的 键 - 值对。该方法在基类中提供。

读properties文件:

简单的来讲,分为三步:创建properties对象、加载文件、读取对象。

               //获得绝对路径
		URL baseUrl = Thread.currentThread().getContextClassLoader().getResource("");
		//1、 创建 propertie对象 
		Properties properties = new Properties();
		//2.加载properties文件,需要通过字节流加载文件。
		properties.load(new FileInputStream(baseUrl.getFile()+File.separator+"config.properties"));
		//3.通过getproperties获得相应的字段的信息
		String po = properties.getProperty("time");
		System.out.println(po);
其中properties文件中,相应的字段的信息填写的格式如下:

                time = 2016-01-01
即可获得time的相应字段 2016-01-01。

通过字节流加载文件也可以如下编写:

               //获得绝对路径
		URL baseUrl = Thread.currentThread().getContextClassLoader().getResource("");
		//1、 创建 propertie对象 
		Properties properties = new Properties();
		//2.加载properties文件,需要通过字节流加载文件。使用完毕记得关闭字节流。
		FileInputStream fis = new FileInputStream(baseUrl.getFile()+File.separator+"config.properties");
		properties.load(fis);
		fis.close(); 
		//3.通过getproperties获得相应的字段的信息
		String po = properties.getProperty("time");
		System.out.println(po);
关于路径的问题,在本机测试也可以直接用简单的相对路径来测试,关于相当于路径与绝对路径的问题就不加详细讨论了。

写properties文件:

写properties文件:创建properties对象,加载properties文件、通过setProperties修改字段、通过字节流存储修改。

                Properties properties = new Properties();
		//这里使用的相对路径的方法记载properties文件
		properties.load(new FileInputStream("rec/config.properties"));
		//通过setProperties的方式,存储time字段。
		properties.setProperty("time", "adsasd");
		//写文件的存储需要通过输出字节流,并调用properties的store的方法来存储修改数据。
		properties.store(new FileOutputStream("rec/config.properties"), "update-time");
		System.out.println(properties.get("time"));
其中properties.store中后面的”update-time”为附加的修改信息备注,可以自行备注附加信息。

要注意的一点就是,properties对象中,输入流加载的文件与输出流加载的文件必须一致,才能保证修改有效,为同一个文件。

这边之所以用相对路径的方法,主要是想读到自己创建的文件夹文件的位置。读方法中用Thread.currentThread().getContextClassLoader().getResource("")取得的是,java编译后,文件的位置,并非自己创建文件夹文件所存放位置。

所以,properties类的读写操作要特别注意文件位置的问题。

本文由很多借鉴别人的资料,并非完全原创,欢迎大家借鉴交流。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值