Java-Properties的简单的使用

Properties 顾名思义是属性的意思,那么 Properties File 那就是属性文件咯。

Properties File 在 java 中是比较常用到的,它适合存储比较零散的配置信息,因为配置信息相对而言不是很多,所以存储到数据库是不划算的,这也就是为什么会有 Properties File 存在的一个道理了。

Properties ,它和 Map 集合有点类似,他们都是键值对的形式存在,而且要保证键的唯一性。存储的时候是以键值对的形式存储进去,获取的时候是通过键去获取值。

下面来看一下怎么使用:


上面是写的简单的示例:

首先往一个 Properties 对象里面设置键值,就好像 Map 集合的 put 一样;

其次调用它的 store 方法进行存储,其中第一个参数是一个输入流(这里传进去的是一个文件输出流),第二个参数是一个 Stirng 类型的commit 也就是注释。


再来看看读:


读也很简单:

首先一个 Properties 对象从一个输入流中 load 数据;

其次通过 get 方法去获取键所对应的值。


读写都完了,现在我们来看看写完后的文件究竟是怎样的。


生成的文件是这样的,第一行是我们传进来的注释,第二行是时间,最后的两行是我们实际要存储的数据。其中,键值对是以等号相连。


Properties 的基本使用就扯到这里。前面代码,输入输出流如果看不懂的,请移步到这里


最后来看看 api 里面还有哪些方法是我们常用的:

获取可以直接 get,还可以在 get 的时候给一个 default Value ,两种方式都可以,set 就只有一种了;

 String getProperty(String key)  用指定的键在此属性列表中搜索属性。
 String getProperty(String key, String defaultValue)  用指定的键在属性列表中搜索属性。
 Object setProperty(String key, String value)  调用 Hashtable 的方法 put。


加载数据和存储数据,加载不仅可以从输入流里面加载,还可以从 reader 里面加载数据,另外,我们不仅可以从 Properties 的文件中去读取数据,还可以去 加载 xml 格式的数据。既然加载数据有那么多中方式,那么对应的存储数据也会有这几种。

 void load(InputStream inStream)  从输入流中读取属性列表(键和元素对)。
 void load(Reader reader)   按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。
 void loadFromXML(InputStream in)   将指定输入流中由 XML 文档所表示的所有属性加载到此属性表中。
 void store(OutputStream out, String comments)   以适合使用 load(InputStream) 方法加载到 Properties 表中的格 式,将此 Properties 表中的属性列表(键和元素对)写入输出流。
 void store(Writer writer, String comments)   以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表 (键和元素对)写入输出字符。
 void storeToXML(OutputStream os, String comment)  发出一个表示此表中包含的所有属性的 XML 文档。
 void storeToXML(OutputStream os, String comment, String encoding)   使用指定的编码发出一个表示此表中包含的 所有属性的 XML 文档。


最后还有两个方法,获取全部的键和全部的值,这个方法有什么用呢?当你不知道里面有什么的时候,就可以全部取出来,遍历一遍了。

Enumeration<?> propertyNames()  返回属性列表中所有键的枚举,如果在主属性列表中未找到同名的键,则包括默认属性列表中不同的键。
Set<String> stringPropertyNames()  返回此属性列表中的键集,其中该键及其对应值是字符串,如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值