Java学习-023-Properties 类 XML 配置文件读取及写入源代码
之前的几篇 Properties 文章已经讲述过了 Java 配置文件类 Properties 的基本用法,查看 JDK 的帮助文档时,也可看到在 Properties 类中还有两个方法 loadFromXML(InputStream) 和 storeToXml(OutputStream, String, String),由方法名中的 xml 不难确定这两个方法分别是读取/写入数据到 xml 文件。JDK 文档部分如下所示:
因而此文将通过源码实例演示 Properties 类是如何将数据写入 xml 文件中,及如何读取数据的。当然,写入 xml 的数据需要符合一定的标准,即以 键值对 的形式存在;同时,生成的 xml 文件的格式可参考上图中的 properties.dtd。
话不多言,小二上码。。。敬请各位小主参阅。若有不足之处,敬请大神指正,不胜感激!
创建 xml 文件源码如下所示:
1 /**2 * @function Write data to xml file by Properties
3 *
4 * @author Aaron.ffp
5 * @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java propertiesWriteXml, 2014-11-20 16:47:47 Exp $
6 *
7 * @param filename : full path
8 * @param author : creator
9 * @param configs : file contents
10 * @return boolean
11 */
12 public boolean propertiesWriteXml(String filename, String author, ArrayList<String[]> configs){
13 Properties properties = new Properties();
14 boolean success = false;
15
16 /* 参数校验: 参数非法时, 抛出参数非法异常 */
17 if (filename == null || "".equals(filename) || author == null || "".equals(author) || configs.isEmpty()) {
18 throw new IllegalArgumentException();
19 }
20
21 try {
22 OutputStream os = new FileOutputStream(filename);
23
24 for (String[] row : configs) {
25 properties.setProperty(row[0].trim(), row[1].trim());
26 }
27
28 properties.storeToXML(os, "author:" + author, "UTF-8");
29 os.close();
30
31 success = true;
32 } catch (IOException ioe) {
33 this.message = "文件 {" + filename + "} 写入失败!";
34 this.logger.error(this.message, ioe);
35 }
36
37 return success;
38 }
Properties 写入 Java xml 配置文件源码
读取 xml 文件源码如下所示:
1 /**2 * @function Read xml file by Properties
3 *
4 * @author Aaron.ffp
5 * @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java xmlReadByProperties, 2014-11-20 16:46:53 Exp $
6 *
7 * @param filename : 文件全路径
8 *
9 * @return Properties
10 */
11 public Properties propertiesReadXml(String filename){
12 Properties properties = new Properties();
13
14 /* 参数校验: 为null或空字符串时, 抛出参数非法异常 */
15 if (filename == null || "".equals(filename) || !this.assertFileType(filename, "XML")) {
16 throw new IllegalArgumentException();
17 }
18
19 try {
20 /* 获取文件数据流 */
21 InputStream is = new FileInputStream(filename);
22 /* 加载文件数据流 */
23 properties.loadFromXML(is);
24 /* 关闭文件数据流 */
25 is.close();
26 } catch (IOException ioe) {
27 properties = null;
28
29 this.message = "文件 {" + filename + "} 读取失败!";
30 this.logger.error(this.message, ioe);
31 }
32
33 return properties;
34 }
Properties 读取 Java xml 配置文件源码
测试源码如下所示:
1 /**2 * Test : Write/Read data to/from XML file
3 *
4 * @author Aaron.ffp
5 * @version V1.0.0: autoUISelenium test.java.aaron.java.tools FileUtilsTest.java test_propertiesWriteXml, 2014-11-20 16:53:53 Exp $
6 *
7 */
8 public void test_propertiesWriteReadXml(){
9 this.message = "\n\n\nTEST:FileUtils.propertiesWriteXml(String filename, String author, ArrayList<String[]> configs)" +
10 "\n FileUtils.propertiesReadXml(String filename)";
11 this.logger.debug(this.message);
12
13 this.fu = new FileUtils();
14 String filename = this.constantslist.PROJECTHOME + this.constantslist.FILESEPARATOR +
15 "testng-temp" + this.constantslist.FILESEPARATOR + "test_propertiesWriteReadXml.xml";
16
17 ArrayList<String[]> configs = new ArrayList<String[]>();
18
19 String author = "Aaron.ffp";
20
21 for (int i = 0; i < 10; i++) {
22 String[] row = new String[2];
23
24 row[0] = i + "";
25 row[1] = "The row number is " + (i + 1);
26
27 configs.add(i, row);
28 }
29
30 if (this.fu.propertiesWriteXml(filename, author, configs)) {
31 Assert.assertEquals(this.fu.propertiesGetValue(this.fu.propertiesReadXml(filename), "2"), "The row number is 3", "Test case failed.");
32 } else {
33 this.message = "Test case failed, please check the data file : " + filename;
34 Assert.fail(this.message);
35 };
36 }
Properties 读取 Java xml 配置文件测试源码
程序执行结果如下所示:
生成的 xml 文件内容如下所示:
至此, Java学习-023-Properties 类创建 XML 文件 顺利完结,希望此文能够给初学 Java 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^
以上是 Java学习-023-Properties 类 XML 配置文件读取及写入源代码 的全部内容, 来源链接: utcz.com/z/392826.html