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. 获取启动画面图片的string

    支持 iPhone 以下. 支持 iPhone 及 iPad +(NSString*)getLaunchImageName { NSArray* images= @[@"LaunchImag ...

  2. ASP.NET easyUI--datagrid 通过ajax请求ASP.NET后台数据的分页查询

    js前台对datagrid的定义代码,如下 mygrid = $('#mytable').datagrid({ fit: true, //自动大小 height: 'auto', rownumbers ...

  3. 强制回收和IDisposable.Dispose方法

    如果某对象的 Dispose 方法被调用一次以上,则该对象必须忽略第一次调用后的所有调用. 如果对象的 Dispose 方法被多次调用,该对象一定不要引发异常. 除Dispose 之外的实例方法在资源 ...

  4. [MVCSharp]开始使用MVC#

    Getting started with MVC# framework The source code of this example can be found under "Example ...

  5. iOS截图

    1.普通的截图办法,在View上面截图 /** * 截图代码 * * @param view 需要截图的view * @param rect 需要截取的区域 * * @return 返回截取的对象 * ...

  6. curl获得http响应码 302 和绑定host

    shell curl 取得HTTP返回的状态 获取状态码 curl -I -m 10 -o /dev/null -s -w %{http_code} www.baidu.com 获取时间   curl ...

  7. DG - 开启Active Data Guard

    在配置active data guard之前,phycial standby必须处于以下两个状态之一: (1)standby处于mount状态,并且redo apply正在运行中 (2)standby ...

  8. 怎么查找执行比较慢的sql语句-DBA给的建议

    1.使用sql动态视图 如下: b.text,a.total_worker_time,a.total_logical_reads,a.total_elapsed_time,execution_coun ...

  9. [转] linux中常用的命令

    系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...

  10. 数据库SQL CRUD

    1.删除表 drop  table +表名 2.修改表 alter  table+表名+ add(添加)+列名+ int(类型) alter  table+表名+ drop(删除)+column(列) ...