上一篇文章我们介绍了java实现的各种排序算法代码示例,本文我们看看Java对象的xml序列化与反序列化的相关内容,具体如下。
成都创新互联公司是一家专业提供苏州企业网站建设,专注与网站建设、网站制作、H5开发、小程序制作等业务。10年已为苏州众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
XML是一种标准的数据交换规范,可以方便地用于在应用之间交换各类数据。如果能在Java对象和XML文档之间建立某种映射,例如Java对象的XML序列化和反序列化,那么就可以使Java的对象方便地与其他应用进行交换。
java.beans包里面有两个类XMLEncoder和Decoder,分别用于将符合JabaBeans规范的Java对象以XML方式序列化和反序列化。以下代码显示了如何使用这两个类实现Java对象的XML编码和解码。
待序列化的Java类:
import java.io.Serializable; public class SerialableObject implements Serializable { private static final long serialVersionUID = 8745578444312339136L; public SerialableObject() { } public SerialableObject(int id, String name, double value) { this.id = id; this.name = name; this.value = value; } 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 double getValue() { return value; } public void setValue(double value) { this.value = value; } private int id; private String name; private double value; }
XML序列化和反序列化用法演示类:
import java.beans.XMLDecoder; import java.beans.XMLEncoder; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.List; import java.util.Vector; public class XmlSerialize { public XmlSerialize() { } public void serializeSingleObject(OutputStream os, Object obj) // 序列化单个java对象 { // XMLEncoder xe = new XMLEncoder(os); XMLEncoder xe = new XMLEncoder(os, "GBK", true, 0); // 仅用于Java SE 7 xe.writeObject(obj); // 序列化成XML字符串 xe.close(); } public Object deserializeSingleObject(InputStream is) // 反序列化单个Java对象 { XMLDecoder xd = new XMLDecoder(is); Object obj = xd.readObject(); // 从XML序列中解码为Java对象 xd.close(); return obj; } public void serializeMultipleObject(OutputStream os, List
需要注意的是,待序列化的类必须要符合JavaBeans的格式规范,即:具有一个无参的public构造函数,所有数据成员的访问均采用getter/setter模式,此外,这个类必须是public的,并且实现了java.io.Serializable接口。
程序运行之后,会产生两个文件:
object.xml是runSingleObject方法生成的,存放了单个的SerialableObject的值:
<?xml version="1.0" encoding="GBK"?>1 Java序列化为XML 3.14159265359
objects.xml是runMultipleObject方法产生的,存放了5个SerializableObject的值:
<?xml version="1.0" encoding="GBK"?>1 Java序列化为XML - 1 3.14 2 Java序列化为XML - 2 3.14159 3 Java序列化为XML - 3 3.1415926 4 Java序列化为XML - 4 3.141592653 5 Java序列化为XML - 5 3.14159265359
总结
以上就是本文关于Java对象的XML序列化与反序列化实例解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:Java编程redisson实现分布式锁代码示例、Java编程ssh整合常见错误解析等,有什么问题可以随时留言,小编会及时回复大家的。下面推荐几本Java编程相关的书籍,供大家参考,免费下载哦:
写给大忙人看的Java核心技术 ([美]凯·S·霍斯特曼) 中文pdf扫描版
https://www.jb51.net/books/556994.html
java Vector类源代码与分析 WORD版
https://www.jb51.net/books/549902.html
希望大家能够喜欢,更多精彩内容尽在:https://www.jb51.net/