package com.xstream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import com.thoughtworks.xstream.XStream;
public class Demo1 {
public static void main(String[] args) throws FileNotFoundException,
UnsupportedEncodingException {
// 对象-->xml : toXML()
// xml-->对象 : fromXML()
// objToXML();
objFromXML();
}
private static void objFromXML() {
XStream xStream = new XStream();
xStream.alias("Message", Message.class);
xStream.aliasField("发送人:", Message.class, "from");
xStream.aliasField("接收人:", Message.class, "to");
xStream.aliasField("正文", Message.class, "content");
xStream.aliasAttribute(Message.class, "id", "id");
Message msg = (Message) xStream.fromXML(new File("src\\Message.xml"));
System.out.println(msg.toString());
}
private static void objToXML() throws FileNotFoundException,
UnsupportedEncodingException {
Message msg = new Message(100000000, "小周", "老周",
"有些事是不能着急的,得看缘分!不要催,淡定。。。");
XStream xStream = new XStream();
// 设置别名:默认情况下,将一个对象转换成xml,会使用全类名和属性名当做标签名
// 如果需要修改,设置别名
// 第一种:全类名的问题:alias("自定义别名",类的字节码)
xStream.alias("Message", Message.class);
// 第二种:属性问题:
// xStream.aliasField("自定义别名", 定义属性的类的字节码(Class), "属性名");
xStream.aliasField("发送人:", Message.class, "from");
xStream.aliasField("接收人:", Message.class, "to");
xStream.aliasField("正文", Message.class, "content");
// 在标签中设置属性:默认情况下,所有的属性都以子标签的形式存在。
// 如果想要在标签中设置属性,也需要设置别名
// xStream.aliasAttribute(定义属性的类的字节码(Class), "属性名", "xml中的属性名");
xStream.aliasAttribute(Message.class, "id", "id");
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(
new File("src\\Message.xml"), true), "utf-8");
xStream.toXML(msg, osw);
}
}
xstream所需jar包
http://download.youkuaiyun.com/detail/hoho_12/9600215