Java学习-023-Properties 类 XML 配置文件读取及写入源代码

java

之前的几篇 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

回到顶部