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(), @ ...
随机推荐
- linux命令行模式下实现代理上网
有些公司的局域网环境,例如我们公司的只允许使用代理上网,图形界面的很好解决就设置一下浏览器的代理就好了,但是linux纯命令行的界面就....下面简单几步就可以实现了! 一.命令行界面的一般代理设置方 ...
- mvc:annotation-driven' must have no character or element问题
使用SpringMVC,启动tomcat报这个错误 解决办法 首先将Spring版本提升到3.1及以上 如果还不行替换xml文件头部: <?xml version="1.0" ...
- Java多线程---------同步与死锁:synchronized;等待与唤醒:wait、notify、notifyAll;生命周期
1.问题的引出 class MyThread implements Runnable{ private int ticket = 5 ; // 假设一共有5张票 public void run(){ ...
- VS2005配置CPPUnit进行单元測试
一. 编译CPPUnitproject 1. 解压文件cppunit-1.12.1.tar.gz. 2. 编译$BASE/src/cppunit/CppUnitLibraries.dsw中的cpp ...
- 秋叶PPT-三分钟教程
http://yuedu.baidu.com/ebook/0596e5f858f5f61fb73666be <说服力-让你的PPT会说话>原创PPT分享 http://www.docin. ...
- PHP获取IP所在地区(转)
1.获取IP地址的API新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js新浪多地域测试方法:http:/ ...
- .NET技术-.NET各大网站-编程技术网址
Source Code: http://www.codeproject.com/ The Code Projecthttp://www.tomore.com/ 中 国盟动力http://www.cod ...
- find——文件查找命令 linux一些常用命令
find 命令eg: 一般文件查找方法: 1. find /home -name file , 在/home目录下查找文件名为file的文件2. find /home -name '*file ...
- Android(java)学习笔记165:Android的Junit调试
编写android应用的时候,往往我们需要编写一些业务逻辑实现类,但是我们可能不能明确这个业务逻辑是否可以成功实现,特别是逻辑代码体十分巨大的时候,我们不可能一行一行检查自己的代码,为了解决这样的问题 ...
- [置顶] 读取pdf并且在web页面中显示
读取pdf并且在web页面中显示 if (System.IO.File.Exists(f)) { Response.ContentType = "applicationpdf"; ...