您的位置:首页 > 编程语言 > Java开发

对象和xml相互转换工具XMLEncoder,XMLDecoder

2017-07-18 14:34 381 查看
基本的介绍:
    1.XMLEncoder
类是
ObjectOutputStream
的互补替换,可用于生成JavaBean 的文本表示形式,所使用方式与用
ObjectOutputStream
创建
Serializable
对象的二进制表示形式的方式相同              2.
XMLDecoder
类用于读取使用
XMLEncoder
创建的 XML 文档,用途类似于
ObjectInputStream
。     XMLEncoder和XMLDecoder和ObjectOutputStream创建的Serializable对象的区别,前者转换的对象,不必实现serializable,同时对transient这个关键词不过敏。具体的代码实现如下:           1.javaBean对象package com.xmlencoder;public class Person{    private int id;    private String name;    private String content;        public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getContent() {        return content;    }    public void setContent(String content) {        this.content = content;    }    }测试的代码:package com.xmlencoder;import java.beans.XMLDecoder;import java.beans.XMLEncoder;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;public class ObjectToXmlUtil {    public static void writeXml() {        try {            XMLEncoder e= new XMLEncoder(new BufferedOutputStream(new FileOutputStream("C:\\Users\\Admin\\Desktop\\Test.xml")));            Person person = new Person();            person.setId(1);            person.setName("tan");            person.setContent("备注的信息");            e.writeObject(person);            e.close();        } catch (FileNotFoundException e1) {            e1.printStackTrace();        }    }        public static void readXml(){        try {            XMLDecoder d=new XMLDecoder(new BufferedInputStream(new FileInputStream("C:\\Users\\Admin\\Desktop\\Test.xml")));            Person p=(Person) d.readObject();            System.out.println(p.getId()+"--"+p.getName()+"--"+p.getContent());        } catch (FileNotFoundException e) {            e.printStackTrace();        }    }    public static void main(String[] args) {        ObjectToXmlUtil.writeXml();//        ObjectToXmlUtil.readXml();//1        System.out.println("hello");//2    }}代码1处输出效果 <?xml version="1.0" encoding="UTF-8"?><java version="1.8.0_92" class="java.beans.XMLDecoder"> <object class="com.xmlencoder.Person">  <void property="content">   <string>备注的信息</string>  </void>  <void property="id">   <int>1</int>  </void>  <void property="name">   <string>tan</string>  </void> </object></java>代码2处的输出效果:1--tan--备注的信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息