- 浏览: 286243 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (197)
- 知识梳理 (37)
- 企业架构 (7)
- java (37)
- linux (20)
- oracle (7)
- mysql (15)
- ide使用 (18)
- spring (9)
- nginx (1)
- MyBatis (2)
- 计划 (2)
- javamail+james (1)
- activiti (1)
- 杂谈 (8)
- flex (17)
- android总结 (5)
- android小技巧 (6)
- 术语 (2)
- ant (3)
- window (10)
- svn (5)
- UML (2)
- DOS (2)
- log (5)
- netty (1)
- maven (3)
- zip (1)
- rar (1)
- hibernate (1)
- redis (1)
- JS (3)
- junit (1)
- git (3)
- resin (1)
- 设计模式 (1)
- 读书笔记 (1)
- 分布式 (1)
最新评论
-
aerfaguihua:
请问楼主 netty编写的客户端能否同步监听接收服务器传来的数 ...
Netty 简单样例分析 -
wanggang0321:
...
logback使用 -
lijunwyf41:
写的太好了
Rational Rose四个视图的含义、区别、用途 -
fengyie007:
如果已经修改了,直接更新了再提交就行了啊。
svn: is out of date -
liguangge285:
http://www.blogjava.net/wangfun ...
我的activiti学习笔记
转自http://trans.blog.51cto.com/503170/110227/
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
aaa=1\
11
b
bb = 222
#格式良好的properties文件
aaa=111
bbb=222
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
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));
}
}
}
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
bbb=222
aaa=111
我从导出的xml加载配置文件信息!
bbb=222
aaa=111
------------test1-------------
bbb=222
aaa=111
Process finished with exit code 0
C:盘下写入的文件如下:
呵呵,全部达到预期目标。
发表评论
-
《Head First Java》读书笔记
2019-02-21 17:39 384此书,新手读不合适,讲得不全面;有多年经验的也不合适,讲得 ... -
java虚拟机——《深入理解Java虚拟机》读书笔记
2018-11-28 17:45 396JDK由三部分组成:Java程序设计语言、Java虚拟机、J ... -
servlet的url-pattern匹配规则
2018-09-17 10:15 706转自:https://www.cnblogs.com/can ... -
前后端分离后,使用token进行接口调用验证处理
2018-07-27 09:51 14506目前项目的发展趋势是前后端分离,前端使用vue、React ... -
泛型详解
2018-07-23 15:08 302参见:https://blog.csdn.net/s10461 ... -
java Pattern和Matcher详解
2018-07-12 09:33 666转载自:http://blog.csdn.net/cclov ... -
堆栈的理解
2018-06-01 14:15 408堆(heap)的数据结构是 ... -
Java-String类型的参数传递问题
2016-11-04 15:40 555转自:http://www.iteye.com/ ... -
IP从HttpServletRequet中获取
2016-11-01 14:33 396private String getIpAddr(fin ... -
JSP学习笔记(一百二十五):javascript中引用java变量出现换行符等会报错的解决方法
2016-03-23 11:57 977源文地址:http://www.cnblogs.com/m ... -
开机启动快捷方式所在目录
2013-11-21 13:13 914想通过java查找开机启动快捷方式所在目录,这个目录在注册表 ... -
按长度分割字符串,兼容中文
2013-08-05 15:38 1079/** * 字符串按长度分割,兼容中文 * @p ... -
获取字符串实际长度
2013-07-31 17:41 754public class StringUtil { // ... -
Java 完美判断中文字符
2013-07-30 14:24 1089原创文章,转载请 ... -
dt.jar与tools.jar的作用
2013-06-22 10:12 931dt.jar和tools.jar是两个java最基本的包,里面 ... -
Java中的volatile关键字
2013-05-07 13:58 691转自:http://www.blogjava. ... -
Java 代码优化过程的实例介绍
2013-05-07 11:45 672转自:http://www.ibm.com/dev ... -
java 控制台执行命令
2013-04-27 16:29 1258最近打包时遇到了些问题,于是想从基础了解下java命令 ... -
关于 JAR 您不知道的 5 件事
2013-04-27 13:45 719转自:http://www.ibm.com/de ... -
深入探讨 Java 类加载器
2013-04-27 10:36 791Java类加载器介绍 转自:http://hi.baid ...
相关推荐
本文通过对数据压缩算法的简要介绍,然后以详细的示例演示了利用java.util.zip包实现数据的压缩与解压,并扩展到在网络传输方面如何应用java.util.zip包现数据压缩与解压
1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
java.util.ConcurrentModificationException 异常问题详解1
详细介绍了java.util.logging.Logger的用法和结构,对如果扩展Logger起到抛砖引玉的作用!尊重劳动成果,亲下载了要给个评价!
Tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException:java.lang.OutOfMemoryError),内附解决方案!
Exception in thread “main“ java.util.InputMismatchException
java.util.Date与java.sql.Date互转及字符串转换为日期时间格式.docx
java.util.concurrent系列文章(1) java.util.concurrent系列文章(1) java.util.concurrent系列文章(1) java.util.concurrent系列文章(1)
世界范围内的时区列表。由 java.util.TimeZone 类导出
java并发工具包 java.util.concurrent中文版-带书签版
详细介绍java.util.Date和java.sql.Date相互转换的多种方法总结,希望对大家有帮助
这是我在编写struts2中遇到的问题,整理出来,包括截图,希望可以帮到大家
java.util包
Java.util.Collection类的学习.pdf
java.util.pdf
java.util包总结,方便大家学习。请多指教。
java.util包源码,pdf版,方便打印
java API 在包java.util中有一个GregorianCalendar类,使用它可以得到一年内某个月的日历.zip
Java并发编程工具包java.util.concurrent的UML类结构图 PDF
使用java.util.timer实现的简单定时任务,在实现简单一次性定时任务时,使用java.util.timer非常的简单易用,适合没有接触过quartz的新手急用。