Java对象的XML序列化与反序列化实例解析
上一篇文章我们介绍了java实现的各种排序算法代码示例,本文我们看看Java对象的xml序列化与反序列化的相关内容,具体如下。
XML是一种标准的数据交换规范,可以方便地用于在应用之间交换各类数据。如果能在Java对象和XML文档之间建立某种映射,例如Java对象的XML序列化和反序列化,那么就可以使Java的对象方便地与其他应用进行交换。
java.beans包里面有两个类XMLEncoder和Decoder,分别用于将符合JabaBeans规范的Java对象以XML方式序列化和反序列化。以下代码显示了如何使用这两个类实现Java对象的XML编码和解码。
待序列化的Java类:
importjava.io.Serializable; publicclassSerialableObjectimplementsSerializable { privatestaticfinallongserialVersionUID=8745578444312339136L; publicSerialableObject() { } publicSerialableObject(intid,Stringname,doublevalue) { this.id=id; this.name=name; this.value=value; } publicintgetId() { returnid; } publicvoidsetId(intid) { this.id=id; } publicStringgetName() { returnname; } publicvoidsetName(Stringname) { this.name=name; } publicdoublegetValue() { returnvalue; } publicvoidsetValue(doublevalue) { this.value=value; } privateintid; privateStringname; privatedoublevalue; }
XML序列化和反序列化用法演示类:
importjava.beans.XMLDecoder; importjava.beans.XMLEncoder; importjava.io.File; importjava.io.FileInputStream; importjava.io.FileNotFoundException; importjava.io.FileOutputStream; importjava.io.IOException; importjava.io.InputStream; importjava.io.OutputStream; importjava.util.List; importjava.util.Vector; publicclassXmlSerialize { publicXmlSerialize() { } publicvoidserializeSingleObject(OutputStreamos,Objectobj)//序列化单个java对象 { //XMLEncoderxe=newXMLEncoder(os); XMLEncoderxe=newXMLEncoder(os,"GBK",true,0); //仅用于JavaSE7 xe.writeObject(obj); //序列化成XML字符串 xe.close(); } publicObjectdeserializeSingleObject(InputStreamis)//反序列化单个Java对象 { XMLDecoderxd=newXMLDecoder(is); Objectobj=xd.readObject(); //从XML序列中解码为Java对象 xd.close(); returnobj; } publicvoidserializeMultipleObject(OutputStreamos,List
需要注意的是,待序列化的类必须要符合JavaBeans的格式规范,即:具有一个无参的public构造函数,所有数据成员的访问均采用getter/setter模式,此外,这个类必须是public的,并且实现了java.io.Serializable接口。
程序运行之后,会产生两个文件:
object.xml是runSingleObject方法生成的,存放了单个的SerialableObject的值:
1 Java序列化为XML 3.14159265359
objects.xml是runMultipleObject方法产生的,存放了5个SerializableObject的值:
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.nhooo.com/books/556994.html
javaVector类源代码与分析WORD版
https://www.nhooo.com/books/549902.html
希望大家能够喜欢,更多精彩内容尽在:https://www.nhooo.com/