package org.zhb.test;
/**
* author : zhb
* data : 2014-2-14
* use packages:
* xmlpull-1.1.3.1.jar
* xpp3_min-1.1.4c.jar
* xstream-1.4.7.jar
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter; import com.thoughtworks.xstream.XStream; class Person{
private String name;
private int age;
private String gender;
private Dog dog;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person(){};
public Person(String name, int age, String gender, Dog dog) {
this.name = name;
this.age = age;
this.gender = gender;
this.dog = dog;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
public String toString(){
return "perName: " + this.name + "\n" +
"perAge: " + this.age + "\n" +
"perGender: " + this.gender + "\n" +
"dogName: " + this.dog.getName() + "\n" +
"dogAge: " + this.dog.getAge() + "\n" +
"dogGender: " + this.dog.getGender();
}
}
class Dog{
private String name;
private int age;
private String gender;
public Dog(){};
public Dog(String name, int age, String gender) {
super();
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
public class TestXS {
private static XStream xs;
static{
xs = new XStream();
}
public static void main(String[] args) throws Exception {
Person per = new Person("王大牛", 29, "男", new Dog("李二狗", 5, "男"));
// String xmlResult = xs.toXML(per);
// System.out.println(xmlResult);//控制台输出
String pathName = "D:/per.xml";
// xml2File(per, pathName, "gbk", "Sola");
Person per2 = (Person)File2Object(pathName, per, "Sola", "gbk");
System.out.println(per2); }
public static void xml2File(Object obj, String pathName, String aliasName) throws Exception{
//按系统默认编码写到文件
if(null != aliasName && !("".equals(aliasName)))//不使用别名此参数填入""或null
xs.alias(aliasName, obj.getClass());//为最外层标签指定别名,默认为包名+类名
xs.toXML(obj, new FileWriter(new File(pathName)));
//或 xs.toXML(obj, new FileOutputStream(new File(pathName)));
}
public static void xml2File(Object obj, String pathName, String charsetName, String aliasName) throws Exception{
//按指定编码写到文件
if(null != aliasName && !("".equals(aliasName)))//不使用别名此参数填入""或null
xs.alias(aliasName, obj.getClass());//为最外层标签指定别名,默认为包名+类名
xs.toXML(obj, new OutputStreamWriter(new FileOutputStream(new File(pathName)), charsetName));
}
public static Object File2Object(String pathName, Object obj, String rootName){
//按系统默认编码读取文件
if(null != obj && null != rootName)//未使用别名,两个参数填入null即可
xs.aliasType(rootName, obj.getClass());//写入文件时用过别名,读取时许指定别名对应的类
return xs.fromXML(new File(pathName));
}
public static Object File2Object(String pathName, Object obj, String rootName, String charsetName) throws Exception{
//按指定编码读取文件
if(null != obj && null != rootName)//未使用别名,两个参数填入null即可
xs.aliasType(rootName, obj.getClass());//写入文件时用过别名,读取时许指定别名对应的类
return xs.fromXML(new InputStreamReader(new FileInputStream(new File(pathName)), charsetName));
}
}

XStream简单使用01——xml和Ojbect互转的更多相关文章

  1. JAVA Bean和XML之间的相互转换 - XStream简单入门

    JAVA Bean和XML之间的相互转换 - XStream简单入门 背景介绍 XStream的简介 注解简介 应用实例 背景介绍 我们在工作中经常 遇到文件解析为数据或者数据转化为xml文件的情况, ...

  2. XStream进行xml和bean互转

    加入pom <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>x ...

  3. JavaScript实现XML与JSON互转代码(转载)

    下面来分享一个关于JavaScript实现XML与JSON互转例子,这里面介绍了国外的三款xml转json的例子,希望这些例子能给你带来帮助. 最近在开发在线XML编辑器,打算使用JSON做为中间格式 ...

  4. Json、JavaBean、Map、XML之间的互转

    思路是JavaBean.Map.XML都可以用工具类很简单的转换为Json,进而实现互相转换 1.Map.XML与Json互转 mvn依赖 <dependency> <groupId ...

  5. java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查

    一.XML和String互转: 使用dom4j程式变得很简单 //字符串转XML String xmlStr = \"......\"; Document document = D ...

  6. XML 和 List 互转类

    XML 和 List 互转类 using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

  7. JAVA中 XML与数据库互转 学习笔记三

    要求 必备知识 JAVA基础知识,XML基础知识,数据库的基本操作. 开发环境 MyEclipse10/MySql5.5 资料下载 源码下载   数据库在数据查询,修改,保存,安全等方面与其他数据处理 ...

  8. c++实现Xml和json互转【转】

    https://blog.csdn.net/kfy2011/article/details/51774242 1.下载c语言的cJson库源码,库很小,只有两个文件cJSON.c和cJSON.h.下载 ...

  9. SqlServer简单的操作XML以及SQl的 try catch等统一格式

    1:SqlServer简单的操作XML: ALTER PROCEDURE [dbo].[SP_CRM_FranchiseeRecharge_Money] @Create_By VARCHAR(), @ ...

随机推荐

  1. unity3d 获取相机视口四个角的坐标

    功能:如标题所示,主要考虑用来做3d Plane的自适应屏幕 /// <summary> /// 获取指定距离下相机视口四个角的坐标 /// </summary> /// &l ...

  2. Copy-VMFile

    将文件移到或移出虚拟机可能会产生问题.首先,你需要安装集成服务,打开文件共享.这只需要一个简单的PowerShell命令:Enable-VMIntegrationService.但是你必须登录到虚拟机 ...

  3. 需要设置jdk的三处位置:

    需要设置jdk的三处位置:1.tomcat需要一个JDK : Windows--->Preferences--->MyEclipse--->Servers--->Tomcat- ...

  4. Web Services之SOAP学习

    Web Services之SOAP [toc] 什么是SOAP SOAP(Simple Object Access Protocol)简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一 ...

  5. PAT L1-009. N个数求和

    本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数“分子/分母”的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(<=100).随后一行按格 ...

  6. IE下onchange事件不立即执行

    做前端开发免不了为浏览器的兼容而劳神,所以坚持把发现的浏览器兼容问题做做总结,是很有意义的. 比如IE8及以下的浏览器的onchange事件实在该控件失去焦点之后才执行的,也就是要点一下空白的地方,才 ...

  7. 一个react的完整项目展示

    和一些人的关系像平行线,一辈子相守相望,见于眼底藏于心间.就怕耐不住寂寞,冲动而成了相交线,在一个点尽情拥抱,从此便离得越来越远,再也不见.遇到这样的人,因为不想做恋人只能一时,所以才选择做朋友能一世 ...

  8. Linux基础1之磁盘与分区

    Linux上面设备皆文件,目前需要知道的,比如U盘和SARA硬盘的在Linux上面的文件名,/dev/sd[a-p].与IDE接口不同的是,SATA/USB接口的磁盘没有一定的顺序,这里就根据Linu ...

  9. 二、 What's Maven,How to learning?

    1. 哈哈,什么是Maevn, ←_←|| ?我怎么知道,来看看官方解释, Apache Maven is a software project management and comprehensio ...

  10. @class的基本使用

    2-@class 的基本使用 1, @class的作用 @class 允许简单的引用类,即类的声明.告诉编译器,后面代码中可能会使用到的类名. 好比函数声明一样. 2, #import的作用 与 #i ...