Java Properties工具类详解
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工具类详解的更多相关文章
- java之Matcher类详解
在JDK 1.4中,Java增加了对正则表达式的支持. java与正则相关的工具主要在java.util.regex包中:此包中主要有两个类:Pattern.Matcher. Matcher 声明: ...
- java之StringBuffer类详解
StringBuffer 线程安全的可变字符序列. StringBuffer源码分析(JDK1.6): public final class StringBuffer extends Abstract ...
- java之AbstractStringBuilder类详解
目录 AbstractStringBuilder类 字段 构造器 方法 public abstract String toString() 扩充容量 void expandCapacity(in ...
- java之StringBuilder类详解
StringBuilder 非线程安全的可变字符序列 .该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍).如果可能,建议优先采用该类,因为在 ...
- java.lang.Thread类详解
java.lang.Thread类详解 一.前言 位于java.lang包下的Thread类是非常重要的线程类,它实现了Runnable接口,今天我们来学习一下Thread类,在学习Thread类之前 ...
- Java中dimension类详解
Java中dimension类详解 https://blog.csdn.net/hrw1234567890/article/details/81217788
- java的ReentrantLock类详解
ReentrantLock 能用于更精细化的加锁的Java类, 通过它能更清楚了解Java的锁机制 ReentrantLock 类的集成关系有点复杂, 既有内部类, 还有多重继承关系 类的定义 pub ...
- Java的String类详解
Java的String类 String类是除了Java的基本类型之外用的最多的类, 甚至用的比基本类型还多. 同样jdk中对Java类也有很多的优化 类的定义 public final class S ...
- java.util.Arrays类详解(源码总结)
概述 Arrays类位于java.util包下,是一个对数组操作的工具类.今天详细的看了看Arrays类的4千多行源码,现将Arrays类中的方法做一个总结(JDK版本:1.6.0_34).Array ...
随机推荐
- window.open下载文件ie8请求的站点不可用的解决办法
在业务里用到了PHP header导出doc文档,GET传值到页面,读出相应数据输出doc文件下载.用户提出需要批量,于是设计成js循环出对应数量的window.open(),向页面传入不同的值,批量 ...
- Winforms-GePlugin-Control-library
Winforms-GePlugin-Control-library http://download.csdn.net/download/xm379303813/4247029
- git merge
1. git 解决冲突 ***** <<<<<<< HEAD *** *** ======= **** **** ** >>>>> ...
- session的方法
Hibernate对象的状态 瞬时(Transient) — 由 new 操作符创建,且尚未与Hibernate Session 关联的对象被认定为瞬时(Transient)的.瞬时(Transien ...
- dom core,html dom,css dom,jquery 中的dom操作
前端开发中为达到某种目的,往往有很多方法:dom core,html dom,jquery; dom core/jquery主要通过函数调用的方式(getAttribute("属性名&quo ...
- flock防止重复rsync
我使用crontab同步一个文件夹时,发现一个问题,我在crontab中设置的1分钟运行一次.但当那个文件夹的内容改变时.1分钟不一定能同步完,但这时第二个rsync进行又起来了. 这个就产生一个问题 ...
- linux:网络yum源和制作本地光盘yum源
linux:存放yum源的位置:/etc/yum.repos.d/,该目录下全是一些yum源 一.网络yum源: 如图:下面全部都是yum源,后缀是".repo"都是合法的yum源 ...
- acm算法模板(3)
位 运 算 程序中的所有数在计算机内存中都是以二进制的形式储存的.位运算说穿了,就是直接对整数在内存中的二进制位进行操作.运位算包括位逻辑运算和移位运算,位逻辑运算能够方便地设置或屏蔽内存中某个字 ...
- Demo12SimpleAdapter
/Users/alamps/AndroidStudioProjects/Demo12SimpleAdapter/Demo12SimpleAdapter/src/main/res/layout/data ...
- Session的工作机制详解和安全性问题(PHP实例讲解)
我们先简单的了解一些http的知识,从而理解该协议的无状态特性.然后,学习一些关于cookie的基本操作.最后,我会一步步阐述如何使用一些简单,高效的方法来提高你的php应用程序的安全性以及稳定行. ...