Java使用Properties类读取配置文件
2013-01-15 14:27
633 查看
学习目标:
1、认识properties文件,理解其含义,会正确创建properties文件。
2、会使用java.util.Properties类来操作properties文件。
3、掌握相对路径,能正确书写一个properties文件的相对路径。
一、认识properties文件
1、properties文件是一个文本文件
2、properties文件的语法有两种,一种是注释,一种属性配置。
注 释:前面加上#号
属性配置:以“键=值”的方式书写一个属性的配置信息。
3、properties文件的一个属性配置信息值可以换行,但键不可以换行。值换行用“\”表示。
4、properties的属性配置键值前后的空格在解析时候会被忽略。
5、properties文件可以只有键而没有值。也可以仅有键和等号而没有值,但无论如何一个属性配置不能没有键。
例如,下面一个properties文件:
二、解读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文件:
测试类:
运行结果:
C:盘下写入的文件如下:
转载出处:http://trans.blog.51cto.com/503170/110227/
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:盘下写入的文件如下:
转载出处:http://trans.blog.51cto.com/503170/110227/
相关文章推荐
- java使用Properties类读取配置文件信息
- Java读取配置文件(Properties类)
- 使用java读取配置文件(ini、properties)
- Java国际化,使用ResourceBundle的方式读取配置文件
- JAVA使用相对路径读取配置文件
- 使用java.util.Properties类读写配置文件
- 使用Java读取配置文件
- Java读写配置文件——Properties类的简要使用笔记
- JAVA日志文件的使用与配置文件的读取
- java读取配置文件(使用java.util.Properties读取)
- Java_JDBC连接数据库_使用读取配置文件的方式
- Java -- Properties类使用 读取配置文档
- 在Java中使用Jdom读取xml配置文件
- REDIS 学习(9) 使用java8写jedis的技巧,经典jedis池,附配置文件的读取
- Java -- Properties类使用 读取配置文档
- java IO 使用Properties设置键值对配置信息 写入文件和从文件中读取
- Java使用properties读取配置文件
- JAVA读取classess下的.properties配置文件封装类,linux和windows上都可以使用
- 使用java.util.Properties读取配置文件信息
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题