博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xstream练习
阅读量:4092 次
发布时间:2019-05-25

本文共 3641 字,大约阅读时间需要 12 分钟。

xtream用于javabean和.xml文件之间的序列化与反序列化操作。下面是我自己做的相关练习,我把代码贴出来以供分享。

定义了三个类:Classes  班级类

                         Student 学生类

                        MapBean 用于单独测试map转成xml之后的xiaoguo

public class Classes {	public Classes() {		// TODO Auto-generated constructor stub	}	private String className;	private List
students; public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } public List
getStudents() { return students; } public void setStudents(List
students) { this.students = students; } @Override public String toString() { System.out.println(className); return className; } }
public class Student {		private String name;	private Integer age;			public Student() {	}	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	public Integer getAge() {		return age;	}	public void setAge(Integer age) {		this.age = age;	}	}
public class MapBean {	public MapBean() {		// TODO Auto-generated constructor stub	}	private Map
servlet; private Map
mapping; public Map
getServlet() { return servlet; } public void setServlet(Map
servlet) { this.servlet = servlet; } public Map
getMapping() { return mapping; } public void setMapping(Map
mapping) { this.mapping = mapping; } }
/** * 测试X-Stream的使用 * @author 杨承 * */public class MainClass {	public static void main(String[] args){		mapToXml();	}		public static void objToXml(){		XStream xStream=new XStream(new DomDriver());		xStream.alias("student", Student.class);		xStream.alias("Classes", Classes.class);				Student stu=new Student();		Student stu2=new Student();		stu.setName("校花");		stu.setAge(23);				stu2.setName("校草");		stu2.setAge(23);				Classes classes=new Classes();		List
list=new ArrayList<>(); list.add(stu); list.add(stu2); classes.setClassName("班级一"); classes.setStudents(list); System.out.println(xStream.toXML(classes)); } public static void xmlToObj(){ XStream xStream=new XStream(new DomDriver());
xStream.alias("student", Student.class);
xStream.alias("Classes", Classes.class);
Classes classes=new Classes();		//文件存放在项目的根目录下		xStream.fromXML(new File("Classes.xml"), classes);		classes.toString();	}			public static void mapToXml(){				XStream xStream=new XStream(new DomDriver());		xStream.alias("root", MapBean.class);				Map
urlToName=new HashMap<>(); urlToName.put("/login", "login"); urlToName.put("/log", "login"); urlToName.put("/reg", "reg"); Map
nameToObj=new HashMap<>(); nameToObj.put("login", "httpServer.demo3.LoginServlet"); nameToObj.put("reg", "httpServer.demo3.RegistServlet"); MapBean bean=new MapBean(); bean.setMapping(urlToName); bean.setServlet(nameToObj); System.out.println(xStream.toXML(bean)); }}
objToXml()的执行结果:
班级一
校花
23
校草
23
xmlToObj();执行结果:班级一(证明xml中的数据被封装到了);

mapToXml();执行结果

reg
httpServer.demo3.RegistServlet
login
httpServer.demo3.LoginServlet
/login
login
/log
login
/reg
reg
 
相关jar包下载地址:http://download.csdn.net/download/sinat_28771747/10268548

转载地址:http://escii.baihongyu.com/

你可能感兴趣的文章
比Excel更强大!Python数据分析与挖掘攻略!
查看>>
我26岁,月薪一万,刚实现“黄焖鸡自由”(苦笑)
查看>>
“程序员数学不行,干啥都不行!”高级开发:90%都是瞎努力!
查看>>
面向对象编程,再见!
查看>>
比特币当赎金,WannaRen 勒索病毒二度来袭!
查看>>
热搜!华为:这类程序员领10亿,程序员:真香!你怎么看?
查看>>
程序员:“他辛苦加班又怎样,还不是吃八块钱盒饭的命!”
查看>>
“先裁掉女员工!”
查看>>
Excel弱爆了!这个工具30分钟完成了我一天的工作量,零基础也能学!
查看>>
是!“用Python的,全是假程序员”!HR:太真实……
查看>>
牛!腾讯员工薪资又涨7万!一行代码赚19块
查看>>
“不会SQL,怎么干开发?”面试官:这是面试通过与否的关键!
查看>>
Google 公布程序员一天代码量!你猜对了么?
查看>>
8年Java面试官:月薪8000和30000的差距是什么?
查看>>
“生命游戏之父”因新冠肺炎逝世,回顾数学顽童的一生
查看>>
疫情之下,程序员今年要过苦日子了?网友:太难了!
查看>>
编程生涯 21 载,那些我踩过的坑
查看>>
程序员:站在自学鄙视链顶端的王者(太真实!)
查看>>
“抛弃 Gmail!”
查看>>
从 Nginx 到 Pandownload,程序员如何避免面向监狱编程?
查看>>