[转]使用XStream把Java对象序列化为XML(三)

本文介绍如何使用XStream进行Java对象的序列化与反序列化,并演示如何读取XML配置文件,简化应用程序的开发流程。

 清单 2. Reader.java

package com.samples;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import com.thoughtworks.xstream.*;
import com.thoughtworks.xstream.io.xml.DomDriver;

public class Reader {

 public static void main(String[] args) {
XStream xs = new XStream(new DomDriver());
Employee e = new Employee();

 try {
FileInputStream fis = new FileInputStream("c:/temp/employeedata.txt");
xs.fromXML(fis, e);

 //print the data from the object that has been read
System.out.println(e.toString());

 } catch (FileNotFoundException ex) {
ex.printStackTrace();
}

 }
}

    清单 3 显示了 Employee 对象的结构。

package com.samples;

public class Employee {
private String name;
private String designation;
private String department;

 public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDesignation() {
return designation;
}
public void setDesignation(String designation) {
this.designation = designation;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
@Override
public String toString() {
return "Name : "+this.name+
"/nDesignation : "+this.designation+
"/nDepartment : "+this.department;
}
}

    读取配置文件
 
    多数应用程序都要用到一些属性。这些属性可能是要连接的数据源的名称或者日志文件的位置。配置文件最适合存储这类数据,从而在修改这些属性的时候不需要重新编译应用程序,应用程序维护起来也更容易。下面的例子说明如何在应用程序中使用 XStream 从 XML 配置文件中读取配置属性。

    XML 数据绑定通常需要从 XML 文件生成 Java 对象。使用 XStream 省略了生成对象这个步骤。只需要编写一个 Java 类将类的字段映射到希望读取的 XML 的元素。这个例子使用的配置文件如 清单 4 所示。

    清单 4. Config.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<config>
 <datasource-name>IRIS</datasource-name>
 <ipaddress>9.124.74.85</ipaddress>
 <logfilename>DailyLogApplication.log</logfilename>
 <appender>console</appender>
</config>

 

    清单 5 显示的 ConfigReader 类读取该配置文件并将属性加载到 Java 对象中。

    清单 5. ConfigReader.java

package com.samples;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import com.thoughtworks.xstream.*;
import com.thoughtworks.xstream.io.xml.DomDriver;

public class ConfigReader {

 String datasourcename = null;
String ipaddress = null;
String logfilename = null;
String appender = null;

 @Override
public String toString() {
// This method prints out the values stored in the member variables
return "Datasource Name : "+datasourcename+
" /nIP Address : "+ipaddress+
" /nLogfilename : "+logfilename+
" /nAppender : "+appender;
}

 /**
* @param args
* @throws FileNotFoundException 
*/
public static void main(String[] args) throws FileNotFoundException {
XStream xs = new XStream(new DomDriver());

 FileInputStream fis = new FileInputStream("c:/temp/Config.xml");
xs.aliasField("datasource-name", ConfigReader.class, "datasourcename");
xs.alias("config", ConfigReader.class);
ConfigReader r = (ConfigReader)xs.fromXML(fis);

 System.out.println(r.toString());
}
}

    结束语

    创建和开发使用 XStream 的应用程序只需要简单的几个步骤。本文介绍如何使用 XStream 序列化/逆序列化 Java 对象和读取配置文件,通过 XStream 网站(教程链接参见 参考资料)可以进一步了解别名、注解和转换程序。别名和转换程序可以让您完全控制生成的 XML。

引用自:http://java.chinaitlab.com/XMLBeans/777336_3.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值