java.util.Properties类 学习笔记
学习目标:
1、认识properties文件,理解其含义,会正确创建properties文件。
2、会使用java.util.Properties类来操作properties文件。
3、掌握相对路径,能正确书写一个properties文件的相对路径。
一、认识properties文件
1、properties文件是一个文本文件
2、properties文件的语法有两种,一种是注释,一种属性配置。
注 释:前面加上#号
属性配置:以“键=值”的方式书写一个属性的配置信息。
3、properties文件的一个属性配置信息值可以换行,但键不可以换行。值换行用“\”表示。
4、properties的属性配置键值前后的空格在解析时候会被忽略。
5、properties文件可以只有键而没有值。也可以仅有键和等号而没有值,但无论如何一个属性配置不能没有键。
例如,下面一个properties文件:
#正确的properties配置文件
aaa=1\
11
b
bb = 222
#格式良好的properties文件
aaa=111
bbb=222
二、解读java.util.Properties类
1、Properties类的层次结构
java.lang.Object
java.util.Dictionary<K,V>
java.util.Hashtable<Object,Object>
java.util.Properties
从层次机构看,Properties类实现了Map接口,因为HashTable实现了Map接口,因此Properties类本质上是一种简单的Map容器。
实际上,Properties类本身表示了对一种Map结构的操作。properties文件本身就表示了一个“键值对”的集合。因此,Properties类属于集合容器的家族,在使用前应该创建一个Properties的容器,实际上就是创建一个默认不带参数的Properties对象。以后通过别的方式给里面添加“键值对”。
2、properties文件与Properties类的关系
通过properties文件可以填充Properties类。
也可以通过xml文件来填充Properties类。
可以通过绝对路径方式加载Properties文件信息,也可以使用相对路径加载。
三、实践
1、以绝对相对路径方式加载properties文件信息。
2、将Properties对象持久化到一个properties文件或者一个xml文件中。
3、修改并持久化properties文件。
测试代码:
测试的properties文件:
#格式良好的properties文件
aaa=111
bbb=222
测试类:
package stu;
import java.io.*;
import java.util.Properties;
/**
* Properties类测试
* User: xiaohui
* Date: 2008-11-4 21:04:54
*/
public class TestProperties {
public static void main(String args[]) throws IOException {
testProperties();
test1();
}
public static void testProperties() throws IOException {
System.out.println("------------testProperties-------------");
//将properties文件加载到输入字节流中
InputStream is = new FileInputStream("D:\\myprojects\\lession4\\src\\stu\\ttt.properties");
//创建一个Properties容器
Properties prop = new Properties();
//从流中加载properties文件信息
prop.load(is);
//循环输出配置信息
for (Object key : prop.keySet()) {
System.out.println(key + "=" + prop.get(key));
}
//定义一个输出流
OutputStream os1 = new FileOutputStream("C:\\ttt.xml");
OutputStream os2 = new FileOutputStream("C:\\ttt.properties");
//从Properties对象导出导出到xml
prop.storeToXML(os1, "我从properties导出的XML配置文件");
//从Properties对象导出properties文件
prop.store(os2, "我从properties导出的XML配置文件");
is.close();
os1.close();
os2.close();
//从xml加载配置信息,填充Properties容器
prop.loadFromXML(new FileInputStream("C:\\ttt.xml"));
//循环输出配置信息
System.out.println("我从导出的xml加载配置文件信息!");
for (Object key : prop.keySet()) {
System.out.println(key + "=" + prop.get(key));
}
//修改Properties对象,并持久化到一个文件
prop.put("呵呵呵", "嘎嘎嘎");
OutputStream os3 = new FileOutputStream("C:\\ttt1.xml");
prop.storeToXML(os3, "我从properties导出的XML配置文件");
os3.close();
}
/**
* 以相对路径方式加载properties文件
*
* @throws IOException
*/
public static void test1() throws IOException {
System.out.println("------------test1-------------");
Properties p = new Properties();
p.load(TestProperties.class.getResourceAsStream("/stu/ttt.properties"));
for (Object key : p.keySet()) {
System.out.println(key + "=" + p.get(key));
}
}
}
运行结果:
------------testProperties-------------
bbb=222
aaa=111
我从导出的xml加载配置文件信息!
bbb=222
aaa=111
------------test1-------------
bbb=222
aaa=111
Process finished with exit code 0
C:盘下写入的文件如下:
分享到:
相关推荐
NULL 博文链接:https://whatjx.iteye.com/blog/1501510
这是一个简单的类,用于扩展 Java.util.Properties 类的功能。 它提供了主要围绕键前缀的增强功能,并添加了对将字符串数组存储为属性的支持。 使用前缀来标识数据可能有助于将单独但相关的项目存储在一起。 其中一...
使用java.util.Properties类的load()方法 示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name)); Properties p = new Properties(); p.load(in); 2。使用java.util....
在我们平时写程序的时候,有些参数是经常改变的,而这种改变不是我们预知的。比如说我们开发了一个操作数据库的模块,在开发的时候我们...JDK 内置的java.util.Properties 类为我们操作.properties 文件提供了便利。
Apache Maven 插件,用于检查 java 属性文件 (java.util.Properties) maven-properties-checker 是一个用于检查 java 属性的 Apache Maven 插件。 目的是在属性文件 (java.util.Properties) 中应用一些验证检查,以...
log4j.properties ,commons-logging-1.2.jar,log4j-1.2.16.jar,三个文件一起组成一个完整的日志输出,Apache的Common Logging只是一个高层的日志框架,本身并没有实现真正的写日志能力,而是依赖其它的日志系统如...
3.Session对象可以通过Session的getInstance(java.util.Properties props) 或getInstance(java.util.Properties props, Authenticator authenticator) Authenticator 可以理解为密码和用户名的验证器 或...
META-INF/MANIFEST.MF META-INF/license.txt org.springframework.remoting.caucho.BurlapClientInterceptor.class org.springframework....org/springframework/web/util/HtmlCharacterEntityReferences.properties
适当:Tiny Clojure库,用于处理Java属性列表(java.util.Properties)
主要介绍了spring为java.util.Properties类型的属性进行赋值过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
该库的主要目标是与java.util.Properties类兼容。 不是API明智的(API完全不同),但是能够读取每个Java .properties文件并获得与java.util.Properties完全相同的键值对。 但是,Apron会维护属性文件中条目的顺序...
JDK 内置的 Java.util.Properties 类为我们操作 .properties 文件提供了便利。 一. .properties 文件的形式 # 以下为服务器、数据库信息 dbPort = localhost databaseName = mydb dbUserName = root ...
记录一次报错解决方法: ...org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'logging.level' to java.util.Map<java.lang.String, java.la
import java.util.ArrayList; import java.util.List; import java.util.UUID; /** * @author: Raicho * @Description: * @program: mianshi * @create: 2020-07-17 15:32 **/ public class ...
ava中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去...
Java.util.Properties 103 介绍IO包中扩展功能的流对象 103 十七、 网络编程 110 网络基础之网络协议篇 111 UDP传输 124 TCP传输 126 十八、 反射技术 127 十九、 Ajax原理及实现步骤★★★★★ 130 Ajax概述 130 ...
3.方法入口:common.msg.util.MsgContainer sendWapPushMsg(String url,String desc,String cusMsisdn):发送web push短信; sendMsg(String msg,String cusMsisdn):发送SMS 4.“定时器.txt”记录的是长链接链路...
NULL 博文链接:https://liuzidong.iteye.com/blog/776637
props 更强大的Java Properties替代jodd-email 更简单易用的e-mail收发jodd-upload 处理HTTP上传jodd-servlets 一些Servlet相关的工具类, 附带一套漂亮的JSP标签库jodd-http 轻巧的HTTP客户端小型框架模块有:...
import java.util.regex.Matcher; import java.util.regex.Pattern; /** * . <p/> @author George Wei */ public class I18nTool { private static final String TEMP_RES_ENCODING = "gbk"; private static ...