【Java基础】Java中的持久属性集Properties

Properties 类的介绍

  Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载属性列表中每个键及其对应值都是一个字符串一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 putputAll 方法。但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项。相反,应该使用 setProperty 方法。如果在“不安全”的 Properties 对象(即包含非 String 的键或值)上调用 storesave 方法,则该调用将失败。类似地,如果在“不安全”的 Properties 对象(即包含非 String 的键)上调用 propertyNameslist 方法,则该调用将失败。

 

Properties类的构造方法

Properties() 创建一个无默认值的空属性列表。
Properties(Properties defaults) 创建一个带有指定默认值的空属性列表。

Properties的使用

  由于Properties是Hashtable<Object,Object>的子类,我们可以将其看成是一个map集合,可以存储key-value键值对,只不过Properties希望你存储的都是字符串的键值,而且我们定义的时候不能定义泛型,因为默认希望你存储的都是<String,String>。但是由于其继承了Hashtable<Object,Object>的方法,我们也可以用put方法来put非String的键值。例如下面这几行代码是不会报错的:

    public static void main(String[] args) throws IOException {Properties p = new Properties();p.put(1111, 2222);p.setProperty("aaa", "1");p.setProperty("bbb", "2");p.setProperty("ccc", "3");System.out.println(p.getProperty("aaa"));System.out.println(p.get(1111));}

  但Properties区别于Hashtable的最精彩的功能是可以对接流。看如下几个方法:

 void    list(PrintStream out) 将属性列表输出到指定的输出流。void    list(PrintWriter out) 将属性列表输出到指定的输出流。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 文档。

就是说Properties可以对接流直接将Properties写出到文件或者加载到程序。例如下面的写入代码:

    public static void main(String[] args) throws IOException {Properties p = new Properties();Writer writer = new FileWriter("t.txt");p.setProperty("aaa", "1");p.setProperty("bbb", "2");p.setProperty("ccc", "3");p.store(writer,"set properties");w.close();System.out.println(p);}

最后文件t.txt中显示是这样子的:

#set properties
#Fri Dec 04 16:20:01 HKT 2015
bbb=2
aaa=1
ccc=3

当然,也可以通过load方法将属性load进来:

    public static void main(String[] args) throws IOException {Properties p = new Properties();Reader reader = new FileReader("t.txt");p.load(reader);
     r.close();System.out.println(p.getProperty(
"aaa"));System.out.println(p);}

 

转载于:https://www.cnblogs.com/gslyyq/p/5019665.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289733.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ArcGIS遇上Python】栅格影像批量除以10000

影像做除法时&#xff0c;要先进行float()运算&#xff0c;在进行Divide运算。以下将指定文件夹下的.tif文件首先转换为float并保存在指定文件&#xff0c;再进行divide运算。 import arcpy,os,glob arcpy.CheckOutExtension("spatial") datafilesglob.glob("F:…

python之sys.argv获取命令行的参数

1、问题 执行python文件&#xff0c;我们怎么获取在终端获取输入参数&#xff0c;我们可以使用sys.argv&#xff0c;特么之前不是不熟悉 2、代码 #!/usr/bin/pythonimport sysif __name__ __main__:first sys.argv[0:]print firstsecond sys.argv[1:]print secondname sy…

java爬虫工具xpath提取,2020-07-16--爬虫数据提取--xpath

xpath全称 XML Path Language 是一门在XML文档中 查找信息的语言 最初是用来搜寻XML文档的 但是它同样适用于HTML文档的搜索XPath 的选择功能十分强大&#xff0c;它提供了非常简洁的路径选择表达式&#xff0c;另外还提供了超过100个内置函数&#xff0c;用于字符串&#xff0…

ant压缩在哪卸载_反病毒软件这么多,到底哪一款适合你

记得大学读书的时候,买了电脑,第一件事情就是卸载windows自带的杀毒软件,然后装上自己心仪的杀毒软件,可是市面上杀毒软件这么多,哪一款适合你呢?我找了市面上排名最靠前的三款杀毒软件,让我们看看他们孰胜孰劣,还是各有千秋.他们分别是腾讯的电脑管家,金山毒霸,360安全卫士.这…

连接局域网的SQL Server数据库配置

首先要保证两台机器位于同一局域网内,然后打开配置工具→SQL Server配置管理器进行配置,将MSSQLSERVER的协议的TCP/IP的(IP1,IP2)TCP端口改为1433,已启用改为是。 服务器名称:输入IP 登录名:输入数据库帐号

.NetCore使用NETCore.MailKit发送邮件

前言平时工作中很少用到需要发邮件的功能&#xff0c;所以邮件这块的功能也没有太过关注。近期有一个项目需要接收用户的反馈&#xff0c;上边决定使用邮件&#xff0c;直接将反馈信息发送给领导&#xff0c;也就有了这篇文章。实现发邮件不难&#xff0c;但是开发中遇到了一个…

Erlang 进程创建性能测试

测试代码来自 Progremming Erlang。Erlang&#xff1a; R13B (erts-5.7.1)&#xff0c; 启动参数 P 5000000系统&#xff1a; Window XPCPU&#xff1a; E8200 2.66G 双核内存&#xff1a; 4GErlang R13B (erts-5.7.1) [smp:2:2] [rq:2] [async-threads:0]Eshell V5.7.1 (abor…

Linux bash shell基础语法

转自&#xff1a;http://blog.sina.com.cn/s/blog_46177c3401014fty.html一、Shell基本类型的变量&#xff1a;&#xff08;1&#xff09;Shell定义的环境变量&#xff1a;Shell在开始执行时就已经定义了一些和系统的工作环境有关的变量&#xff0c;用户还可以重新定义这些变量…

通俗理解T检验与F检验的区别【转】

转自&#xff1a;http://blog.sina.com.cn/s/blog_4ee13c2c01016div.html1&#xff0c;T检验和F检验的由来一般而言&#xff0c;为了确定从样本(sample)统计结果推论至总体时所犯错的概率&#xff0c;我们会利用统计学家所开发的一些统计方法&#xff0c;进行统计检定。 通过把…

shell之通过if [ $? != 0 ]判断上次程序是否执行成功

1、问题 在shell脚本里面有时候我们需要判断上一个程序有没有执行成功&#xff0c;比如用chomd 777 file命令&#xff0c;我们可以用通过if [ $? ! 0 ]判断 $?这里表示上一次运行的结果 2、代码实现 #!/bin/bashtest() {return 2; }testresult$?echo "result is:&q…

哄媳妇

1、如果你的女人在你面前哭了&#xff0c;无论什么原因&#xff0c;请抱紧她&#xff0c;再反抗也要抱紧&#xff0c;趴在桌子上永远没有在你怀里安心&#xff1b; 2、如果你的女人指出了你的不是&#xff0c;请不要总是嫌她唠叨&#xff0c;若不是因为在乎她不会说你&#xff…

自己搭建一个k8s环境

背景Kubernetes 是时下流行的容器编排引擎&#xff0c;因为字母太多&#xff0c;且掐头去尾后剩下 8 个字母&#xff0c;于是被大家亲切的缩写为 k8s。Kubernetes https://kubernetes.io/另外所谓“云原生”概念火爆&#xff0c;各大云厂商也纷纷推出了自己的容器服务&#xff…

大数据在金融领域的应用及问题时

互联网使信息变的扁平&#xff0c;但是信息的利用效率却没有得到提高&#xff0c;因为技术的限制和认知的局限&#xff0c;海量的信息无法深度挖掘价值&#xff0c;甚至是信息本身被直接忽视。很多情况下人们能看到的只是互联网的便利&#xff0c;而挖掘信息背后的价值则无从做…

个人电脑 公司电脑 代理_这样的电脑谁来用?一体式水冷,磁悬浮风扇!

原标题&#xff1a;这样的电脑谁来用&#xff1f;一体式水冷&#xff0c;磁悬浮风扇&#xff01;海盗船是个人电脑市场资历最老、信誉最好的个人电脑元件制造商之一。该公司最初的产品主要是和存储相关的&#xff0c;后来&#xff0c;海盗船开始慢慢向其他细分市场扩张。虽然他…

VMware虚拟机中CentOS网络设置

在VMware虚拟机中安装了一个CentOS系统&#xff0c;试着学习了一下该系统下的网络设置&#xff0c;记录如下&#xff1a; VMware虚拟机中比较方便的联网方式是NAT方式&#xff0c;这里采用该方式。 CentOS默认使用ipv6协议联网&#xff0c;则虚拟机会给该系统分配ipv6地址&…

filegetcontents php 返回值,php – file_get_contents没有返回任何数据

标签&#xff1a;php所以我正在使用足球联赛API,我让它返回我需要的数据.然而,它现在突然停止工作,我不知道为什么.class leagueTable {public $data;public $baseUri;public $config;public $tr;public function __construct($payload) {$this->data $payload;$this->c…

shell之用command在终端判断是否存在这个命令

1、command解释 command命令在shell脚本里面&#xff0c;如果发现有个函数和我们需要执行的命令同名&#xff0c;我们可以用command用来强制执行后面的命令&#xff0c;而不是同名函数&#xff0c;然后我们也可以在shell脚本里面判断莫个命令是否存在&#xff0c;我们平时一般…

关于.NET

.NET简单分析&#xff1a; .Net目前主要的开发方向主要分为&#xff1a;Web开发、桌面系统开发、移动开发。1、Web开发&#xff1a;通俗的说就是开发网站&#xff0c;包括类似于大众点评网等这样的互联网以及OA等内网系统&#xff0c;Web开发是目前.Net开发的主要方向。&#x…

沿途风景

1.麦积山&#xff08;甘肃省天水市麦积区&#xff09;2014年8月27日 2.柳湖公园&#xff08;甘肃省平凉市&#xff09;2014年8月25日 3.崆峒山&#xff08;甘肃省平凉市&#xff09;2014年8月26日 4.净土寺&#xff08;甘肃省天水市麦积区&#xff09;2014年8月27日 5.仙人崖&a…

如何格式化电脑_移动硬盘提示格式化如何解决?数据恢复软件解决问题

使用移动硬盘的时候&#xff0c; 硬盘用久了&#xff0c;会出现各种各样的错误&#xff0c;最终导致无法使用&#xff0c;常常出现提示“格式化”&#xff0c;这时候就挺烦恼的&#xff0c;如果使用不当的话&#xff0c;就会引发各种奇怪的问题&#xff0c;其中最严重的的就是提…