XStream使用学习

java 代码

    • import java.io.File;   
    • import java.io.FileInputStream;   
    • import java.io.FileOutputStream;   
    • import java.io.InputStream;   
    • import java.io.InputStreamReader;   
    • import java.io.OutputStream;   
    • import java.io.OutputStreamWriter;   
    • import java.nio.charset.Charset;   
    • import java.util.ArrayList;   
    • import java.util.List;   
    •   
    • import com.thoughtworks.xstream.XStream;   
    • import com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider;   
    •   
    • public class test {   
    •     public static void main(String[] args) {   
    •         test.write();   
    •         test.read();   
    •     }   
    •   
    •     public static void write() {   
    •         XStream sm = new XStream();   
    •         mytest t = new mytest();   
    •         t.setName("asd");   
    •         t.setXb("男");   
    •         try {   
    •             OutputStream out = new FileOutputStream(new File("C://111.xml"));   
    •             OutputStreamWriter writer = new OutputStreamWriter(out, Charset.forName("GBK"));   
    •             writer.write(" /n");   
    •             //sm.omitField(mytest.class, "name");   
    •                
    •             sm.toXML(t, writer);   
    •             out.close();   
    •         } catch (Exception e) {   
    •             e.printStackTrace();   
    •         }   
    •     }   
    •   
    •     public static void read() {   
    •         XStream sm = new XStream(new PureJavaReflectionProvider());   
    •         //XStream sm = new XStream();   
    •         try {   
    •             InputStream in = new FileInputStream(new File("C://111.xml"));   
    •             InputStreamReader reader = new InputStreamReader(in, Charset.forName("GBK"));   
    •             mytest t = (mytest) sm.fromXML(in);   
    •             System.out.println(t.getXb());   
    •             in.close();   
    •         } catch (Exception e) {   
    •             e.printStackTrace();   
    •         }   
    •     }   
    • }   
    •   
    • class mytest {   
    •   
    •     private String name;   
    •   
    •     private String xb;   
    •   
    •     public String getName() {   
    •         return name;   
    •     }   
    •   
    •     public void setName(String name) {   
    •         this.name = name;   
    •     }   
    •   
    •     public String getXb() {   
    •         return xb;   
    •     }   
    •   
    •     public void setXb(String xb) {   
    •         this.xb = xb;   
    •     }   
    • }   

  •  XStream 的编码:
    本身并没有实现编码,必须依靠java.io.Writer来实现输出编码的转换。参考上例代码
  • XStream 的常用方法
    xstream.omitField(mytest.class, "name");               定义某一个属性的值不进行xml序列化。
    xstream.alias("cat", Cat.class);
    xstream.aliasField("age", Cat.class, "mAge");        对某一个类和类的属性进行别名定义。
    xstream.useAttributeFor(String.class);                     对所有String类型的字段定义为属性tag显示
    xstream.useAttributeFor("name".String.class);       对所有String类型的字段名成为name 定义为属性tag显示
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值