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(), @ ...
随机推荐
- 递归小demo(1-100的和)
public class demo1 { public static void main(String[] args) { //初始值为100 int n = 100; //调用number方法,返回 ...
- hdu 1062 Text Reverse 字符串
Text Reverse Time L ...
- 理解C# Attribute
1.Attribute与Property Attribute是特性,Property是属性. 2.Attribute与注释 注释:是给程序员看的,编译的时候会去掉这些信息,也就是说,程序集中没有注释的 ...
- android 无线模式下使用ADB调试
改动系统system权限 1. cp sud /system/xbin/sud chmod 755 /system/xbin/sud // note: su chmod 成755 2. cp su / ...
- VisJS 随机图
<!doctype html> <html> <head> <title>Random nodes</title> <style ty ...
- DNS 和 IPv6 配置攻略
Windows 2003 DNS配置攻略 http://lgzeng2360.blog.51cto.com/275998/161908/ http://ask.zol.com.cn/q/21861.h ...
- 使用CocoaPods遇到的几个坑,记录一下
最近使用pod的时候升级到1.0.0版本后遇到一些坑,整理一下 首先是CocoaPods报错:The dependency `` is not used in any concrete target ...
- win7系统玩游戏不能全屏的解决办法
1.修改注册表中的显示器的参数设置 Win键+R键,打开运行窗口,输入regedit回车,这样就打开了注册表编辑器,然后,定位到以下位置: HKEY_LOCAL_MACHINE\SYSTEM\ ...
- 对进度条progressbar的调整
进度条的理解,感觉这个进度条不是那么简单,系统给我们定制了几个普通的,但是如果还需要有更加好的效果,需要自己去调试. <ProgressBar android:layout_width=&quo ...
- java gui可见即可得
http://www.eclipse.org/windowbuilder/ http://download.eclipse.org/windowbuilder/WB/release/R20130927 ...