XStream是一个很容易上手的工具,也在日常开发中极为常用.其特点如下:
一、可以将对象序列化为XML,也可以将XML反序列化对象;
二、不需要任何配制,速度快,占用内存小,生成的XML可以写到文件,做持久化;
用到的JAR包括:xstream-1.3.jar、xpp3_min-1.1.4c.jar
/**
*
*/
package test;
import com.thoughtworks.xstream.XStream;
/*******************************************************
* 功能: XStream工具的运用
* 作者: ***
* 日期: Oct 16, 2012 8:05:35 PM
*******************************************************/
public class XStreamTest {
XStream xstream =null;
Student bean =null;
/**
* @param args
*/
public static void main(String[] args) {
XStreamTest test = new XStreamTest();
test.init();
test.bean2XML();
test.xml2Bean();
}
public void init() {
xstream = new XStream();
bean = getStudent();
}
/**
* 将学生bean对象转换成XML串
*/
public void bean2XML(){
if(xstream == null){
xstream =new XStream();
}else{
xstream.alias("Student", test.Student.class);
System.out.println(xstream.toXML(bean));
}
}
/**
* 将XML串转换成Bean对象
*/
public void xml2Bean(){
String xml ="<Student>"+
"<id>20121016</id>"+
"<uname>张三</uname>"+
"<unameId>zhangsan</unameId>"+
"<tel>13910000000</tel>"+
"<email>zhangsan@163.com</email>"+
"</Student>";
if(xstream == null){
xstream =new XStream();
}else{
Object obj =xstream.fromXML(xml);
if(obj != null){
Student bean =(Student)obj;
toString(bean);
}else
System.out.println("obj is null");
}
}
private void toString(Student bean2) {
System.out.println("学号:" + bean2.getId() + ",姓名:" + bean2.getUname()
+ ",姓名ID:" + bean2.getUnameId() + ",邮箱:" + bean2.getEmail()
+ ",手号:" + bean2.getTel());
}
/**
* 构造一个学生Bean对象
* @return Stuent对象
*/
private Student getStudent() {
Student student = new Student();
student.setId("20121016");
student.setUname("张三");
student.setUnameId("zhangsan");
student.setEmail("zhangsan@163.com");
student.setTel("13910000000");
return student;
}
}
class Student{
/**
* 学号
*/
private String id ="";
/**
* 姓名 专指中文名
*/
private String uname ="";
/**
* 姓名ID
*/
private String unameId ="";
/**
* 电话
*/
private String tel ="";
/**
* 邮箱
*/
private String email ="";
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUnameId() {
return unameId;
}
public void setUnameId(String unameId) {
this.unameId = unameId;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
三、运行效果:
<Student>
<id>20121016</id>
<uname>张三</uname>
<unameId>zhangsan</unameId>
<tel>13910000000</tel>
<email>zhangsan@163.com</email>
</Student>
学号:20121016,姓名:张三,姓名ID:zhangsan,邮箱:zhangsan@163.com,手号:13910000000