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/