XStream简单使用01——xml和Ojbect互转
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互转的更多相关文章
- JAVA Bean和XML之间的相互转换 - XStream简单入门
JAVA Bean和XML之间的相互转换 - XStream简单入门 背景介绍 XStream的简介 注解简介 应用实例 背景介绍 我们在工作中经常 遇到文件解析为数据或者数据转化为xml文件的情况, ...
- XStream进行xml和bean互转
加入pom <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>x ...
- JavaScript实现XML与JSON互转代码(转载)
下面来分享一个关于JavaScript实现XML与JSON互转例子,这里面介绍了国外的三款xml转json的例子,希望这些例子能给你带来帮助. 最近在开发在线XML编辑器,打算使用JSON做为中间格式 ...
- Json、JavaBean、Map、XML之间的互转
思路是JavaBean.Map.XML都可以用工具类很简单的转换为Json,进而实现互相转换 1.Map.XML与Json互转 mvn依赖 <dependency> <groupId ...
- java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查
一.XML和String互转: 使用dom4j程式变得很简单 //字符串转XML String xmlStr = \"......\"; Document document = D ...
- XML 和 List 互转类
XML 和 List 互转类 using System; using System.Collections.Generic; using System.Linq; using System.Text; ...
- JAVA中 XML与数据库互转 学习笔记三
要求 必备知识 JAVA基础知识,XML基础知识,数据库的基本操作. 开发环境 MyEclipse10/MySql5.5 资料下载 源码下载 数据库在数据查询,修改,保存,安全等方面与其他数据处理 ...
- c++实现Xml和json互转【转】
https://blog.csdn.net/kfy2011/article/details/51774242 1.下载c语言的cJson库源码,库很小,只有两个文件cJSON.c和cJSON.h.下载 ...
- SqlServer简单的操作XML以及SQl的 try catch等统一格式
1:SqlServer简单的操作XML: ALTER PROCEDURE [dbo].[SP_CRM_FranchiseeRecharge_Money] @Create_By VARCHAR(), @ ...
随机推荐
- chrmoe debug
一.右击,点击审查元素 二.打开后,每个tab是干什么用的呢? 三.调试样式 选中Elemes后,右边有个窗口,这里是CSS的样式,可以直接选中元素,并且在这里修改样式.这样调试很方便,效率也很高.当 ...
- github创建tag
最近在使用github给新的jQuery插件:滚动高亮 添加版本库的时候,看到很多github上的项目都有这个标签,可以清晰快速的找到每个不同的版本,非常方便以后查找以及使用.于是我就在继上一次的:将 ...
- linux环境下tcpdump源代码分析
Linux 环境下tcpdump 源代码分析 韩大卫@吉林师范大学 tcpdump.c 是tcpdump 工具的main.c, 本文旨对tcpdump的框架有简单了解,只展示linux平台使用的一部分 ...
- cocos2d-x设计模式发掘之五:防御式编程模式
http://www.ityran.com/archives/2105 本文由子龙山人原创,泰然授权转载,转载请注明出处并通知子龙山人! 声明:防御式编程是提高程序代码质量的一种手段,它不能算是真正意 ...
- SpringMVC关于json、xml自动转换的原理研究[附带源码分析 --转
SpringMVC关于json.xml自动转换的原理研究[附带源码分析] 原文地址:http://www.cnblogs.com/fangjian0423/p/springMVC-xml-json-c ...
- 聊聊动画引擎 pop
iOS可以通过CADisplayLink实现自定义动画引擎,pop就是基于此实现的,而且比原生Core Animation更强大好用.譬如当ViewController侧滑返回的时候,系统会将Core ...
- 【排障】使用DiskGenius修复0扇区损坏
用PE引导启动进入PE后打开DiskGenius软件 "硬盘"图形菜单------选择驱动器符号(例如C) 主界面中显示该硬盘的分区格式为FAT32,起始柱面0,起始磁头65. 在 ...
- centos6.5 apache+tomcat结合 负载均衡
一. 负载均衡:根据 uri 表达式把请求分发给各个服务器处理.如:/*.jsp = lb_s 就是说把所有jsp请求交给lb_s , 当然它是个Tomcat. 二. 安装配置mod_jk m ...
- 基于u盘安装centos6.0
本人在dell笔记本上尝试安装centos6.0,与win7形成双系统,安装过程如下: 1.使用ultraliso制作u盘启动盘,启动盘以centos6.0的映像文件为源头制作: 2.制作完成后,删除 ...
- FPGA异步时钟设计中的同步策略
1 引言 基于FPGA的数字系统设计中大都推荐采用同步时序的设计,也就是单时钟系统.但是实际的工程中,纯粹单时钟系统设计的情况很少,特别是设计模块与外围芯片的通信中,跨时钟域的情况经常不可避免. ...