【转载】利用Java XStream序列化为XML及将XML反序化为对象示例代码

本文介绍了XStream工具的使用方法,包括对象序列化为XML和XML反序列化对象的功能,通过示例展示了其运行效果。XStream工具简单易用,速度快,占用内存小,适用于对象持久化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值