学习目标:
1、认识properties文件,理解其含义,会正确创建properties文件。
2、会使用java.util.Properties类来操作properties文件。
3、掌握相对路径,能正确书写一个properties文件的相对路径。
一、认识properties文件
1、properties文件是一个文本文件
2、properties文件的语法有两种,一种是注释,一种属性配置。注 释前面加上#号,属性以“键=值”的方式书写一个属性的配置信息。
3、properties文件的一个属性配置信息值可以换行,但键不可以换行。值换行用“\”表示。
4、properties的属性配置键值前后的空格在解析时候会被忽略。
5、properties文件可以只有键而没有值。也可以仅有键和等号而没有值,但无论如何一个属性配置不能没有键。
测试类
import java.io.*; import java.util.Properties; /** * Properties类测试 */ 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:\\ttt.properties"); //创建一个Properties容器 Properties prop = new Properties(); //从流中加载properties文件信息 prop.load(is); //循环输出配置信息 System.out.println("我是初始化加载的ttt.properties文件"); for (Object key : prop.keySet()) { System.out.println(key + "=" + prop.get(key)); } //定义一个输出流 OutputStream os1 = new FileOutputStream("D:\\ttt.xml"); OutputStream os2 = new FileOutputStream("D:\\ttt.properties"); //从Properties对象导出导出到xml prop.storeToXML(os1, "我从properties导出的XML配置文件"); //从Properties对象导出properties文件 prop.store(os2, "我从properties导出的properties配置文件"); is.close(); //关闭流 os1.close(); os2.close(); //从xml加载配置信息,填充Properties容器 prop.loadFromXML(new FileInputStream("D:\\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("D:\\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)); } } }
运行结果:
D:盘下写入的文件如下:
呵呵,全部达到预期目标。