1、Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便。首先该类是继承自

Hashtable<Object,Object>

这就奠定了Properties类的本质其实是一个HashTable,那么对于各种工具类的典型特性就是在HashTable的基础之上做各种封装,以降低操作的难度。说白了,本质上还是key = value结构,只不过key和value都是字符串而已。可以理解成为一个简化版的Map<String, String>。

2、Properties的用途,显而易见,我们在开发过程中很多地方都会用到以.properties结尾的配置文件,key=valu结构的数据,他没有XML文件那么丰富强大,但是他简单,我们也不是任何地方都需要用XML来描述比较复杂的嵌套结构。据我所知,有不少框架在解析.properties文件的时候就采用的是Properties类或者是基于Properties来扩展,就像Properties扩展HashTable道理差不多。

3、Properties类的使用

  1.创建Properties对象,源码中提供2中构造方法。但是本质是一致的,在此介绍默认构造方法:

Properties prop = new Properties();

  2.该类总共大概二三十个方法,没有静态方法。所有的方法都是针对该类的实例化对象的操作。按照一般的工具类的思路,内部虽然有二三十个方法,其实很多都是类似的方法,只不过是不一样的参数进行重载而已。去掉类似的方法和重载的方法,也就剩下不到10个,而这不到10个的方法用法和特点和Map几乎是一模一样,本身他也是继承自HashTable的。

  3.从.properties文件中加载,我们一般都是从文件中加载属性。而该类提供了3个从文件中加载的方法,分别是:

load(Reader reader)
load(InputStream inStream)
loadFromXML(InputStream in)

  4.对属性的操作

  通过上面第3步就会使得prop对象拥有了0个或者多个key=value方式的属性。

  5.对对象的操作

         prop.clear(); // 清空
prop.containsKey("key"); // 是否包含key
prop.containsValue("value"); // 是否包含value
prop.entrySet(); // prop的Map.Entry集合
prop.getProperty("key"); // 通过key获取value
prop.put("key", "value"); // 添加属性
prop.list(new PrintStream(new File(""))); // 将prop保存到文件
prop.store(new FileOutputStream(new File("")), "注释"); // 和上面类似

Java Properties工具类详解的更多相关文章

  1. java之Matcher类详解

    在JDK 1.4中,Java增加了对正则表达式的支持. java与正则相关的工具主要在java.util.regex包中:此包中主要有两个类:Pattern.Matcher. Matcher  声明: ...

  2. java之StringBuffer类详解

    StringBuffer 线程安全的可变字符序列. StringBuffer源码分析(JDK1.6): public final class StringBuffer extends Abstract ...

  3. java之AbstractStringBuilder类详解

    目录 AbstractStringBuilder类 字段 构造器 方法   public abstract String toString() 扩充容量 void  expandCapacity(in ...

  4. java之StringBuilder类详解

    StringBuilder 非线程安全的可变字符序列 .该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍).如果可能,建议优先采用该类,因为在 ...

  5. java.lang.Thread类详解

    java.lang.Thread类详解 一.前言 位于java.lang包下的Thread类是非常重要的线程类,它实现了Runnable接口,今天我们来学习一下Thread类,在学习Thread类之前 ...

  6. Java中dimension类详解

    Java中dimension类详解 https://blog.csdn.net/hrw1234567890/article/details/81217788

  7. java的ReentrantLock类详解

    ReentrantLock 能用于更精细化的加锁的Java类, 通过它能更清楚了解Java的锁机制 ReentrantLock 类的集成关系有点复杂, 既有内部类, 还有多重继承关系 类的定义 pub ...

  8. Java的String类详解

    Java的String类 String类是除了Java的基本类型之外用的最多的类, 甚至用的比基本类型还多. 同样jdk中对Java类也有很多的优化 类的定义 public final class S ...

  9. java.util.Arrays类详解(源码总结)

    概述 Arrays类位于java.util包下,是一个对数组操作的工具类.今天详细的看了看Arrays类的4千多行源码,现将Arrays类中的方法做一个总结(JDK版本:1.6.0_34).Array ...

随机推荐

  1. zabbix使用tokudb引擎替换innodb引擎

    zabbix数据量大,数据量增长很快,使用tokudb可以更好的压缩 使用tokudb,用percona 或mariadb数据库 1.查看数据库版本 (1)登录数据库的时候可以看到 (2)status ...

  2. 由一个Servlet 看java入门常犯的几个错误

    安装完java环境后,cmd-javac 报错           ------------->环境变量配错了,最后全配成系统变量,ok了 能浪费一天的时间 写一个最简单的Servlet ,to ...

  3. UIButton属性

    1.UIButton状态: UIControlStateNormal          // 正常状态    UIControlStateHighlighted     // 高亮状态    UICo ...

  4. iOS 在一个应用程序中调另一个应用程序

    在A应用程序中调用B应用程序 1. 首先在B应用程序中生成URL 1)点击targets文件 2)点击Info 3)生成URL ①在Info.plist文件中点击+(新添加一项) ②在Info.pli ...

  5. Linux下原子性操作,类似Windows下的InterLockedXXX

    其中,这些操作的操作数(type) 可以是1,2,4或8字节长度的int类型,即: int8_t / uint8_t int16_t / uint16_t int32_t / uint32_t int ...

  6. Spring boot中使用springfox来生成Swagger Specification小结

    Rest接口对应Swagger Specification路径获取办法: 根据location的值获取api   json描述文件 也许有同学会问,为什么搞的这么麻烦,api json描述文件不就是h ...

  7. Exchanger示例

    Exchanger有两个用户,当一(A)方调用exchange方法之后,就开始等待,直到另一(B)方开始调用exchange方法.两个exchange可以认为是原子性的. public class C ...

  8. pptp建立vpn

    1. 安装依赖 ppp yum -y install ppp 2. 编译安装pptpd wget http://jaist.dl.sourceforge.net/project/poptop/pptp ...

  9. Swift游戏实战-跑酷熊猫 07 平台的移动

    这节内容我们来实现平台是怎么产生移动动画的. 要点 1 利用数组存放平台 var platforms=[Platform]() 2 有新的平台产生存放进数组 platforms.append(plat ...

  10. Leetcode: Shuffle an Array

    Shuffle a set of numbers without duplicates. Example: // Init an array with set 1, 2, and 3. int[] n ...