Serialize an object using XMLTag(s): XML(JAVA对象序列化成XML)
来源:互联网 发布:人工蜂群算法和粒子群 编辑:程序博客网 时间:2024/05/17 04:13
http://www.rgagnon.com/javadetails/java-0470.html
一、Consider this simple class
public class Foo { private String foo ; public void setFoo(String s) { foo = s; } public String getFoo() { return foo; }}
考虑如下简单的类,一个foo属性和set,get两个方法。
二、The java.beans package provides useful methods to save an object state into an XML file and easily read it back.
Here an Helper class for our Foo class.
java.beans包里提供了一些有用的方法用来将对象以XML文件的方式保存并且非常容易读取出来(反序列化)。下面是一个帮助类,提供了write和read方法,分别用来序列化对象和读取xml反序列化为对象 。
三、Here how to use it.下面为测试类来测试如何使用它。四、运行上面的测试类,得到如下的XML文件Just for fun, here the resulting XML file (with my installation)五、【实例】import java.beans.XMLDecoder;import java.beans.XMLEncoder;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.Serializable;
public class Test { public static void main(String[] args) throws IOException{ UserBean user = new UserBean(); OtherUserInfoBean otherUserInfo = new OtherUserInfoBean(); otherUserInfo.setAddress("汉字"); otherUserInfo.setEmail("test@test.com"); user.setName("hello"); user.setPassword("world"); user.setOtherinfo(otherUserInfo); ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream(); BufferedOutputStream bufferOut = new BufferedOutputStream(byteArrayOut); writeObjectToXML(bufferOut, user); byte[] bys = byteArrayOut.toByteArray(); // for(int i=0; i<bys.length; i++) // System.out.print(bys[i] +" "); byteArrayOut.close(); bufferOut.close(); ByteArrayInputStream byteArrayIn = new ByteArrayInputStream(bys); BufferedInputStream bufferIn = new BufferedInputStream(byteArrayIn); UserBean user1 = readObjectFromXML(bufferIn); byteArrayIn.close(); bufferIn.close(); System.out.println(user1.getName()); System.out.println(user1.getOtherinfo().getAddress()); } public static <T extends Serializable> void writeObjectToXML(OutputStream out, T obj){ XMLEncoder xmlEncoder = null; try{ xmlEncoder = new XMLEncoder(out); xmlEncoder.writeObject(obj); }finally{ if(null != xmlEncoder) xmlEncoder.close(); } } @SuppressWarnings("unchecked") public static <T extends Serializable> T readObjectFromXML(InputStream in){ T obj = null; XMLDecoder xmlDecoder = null; try{ xmlDecoder = new XMLDecoder(in); obj = (T) xmlDecoder.readObject(); }finally{ if(null != xmlDecoder) xmlDecoder.close(); } return obj; }}
- Serialize an object using XMLTag(s): XML(JAVA对象序列化成XML)
- 将XML序列化成对象
- XStream实现java对象的序列化成xml和反序列化成java对象
- 将对象序列化成XML文件
- 对象序列化成XML存储,XML反序列换成对象
- java类序列化成xml 方法
- java类序列化成xml 方法
- C#/.NET 将对象序列化成XML和将XML反序列化成对象
- XML如何序列化成字符串
- boost 序列化成 xml文件
- boost 序列化成 xml文件
- C#序列化成XML注意事项
- java xml Serialize DeSerialize
- 我的WCF之旅(4):WCF中的序列化[上篇] 、.net对象序列化成xml文件Mapping
- 以读取博客园随笔备份为例 将xml 序列化成json,再序列化成对象
- [Unity 笔记] unity中如何将Object序列化成xml字符串并保存
- 将类序列化成xml文件
- C#基于DataContract序列化成XML格式
- PreTranslateMessage(MSG* pMsg) 中 break 与return的区别
- delphi TMemoryStream对象用法
- JSP学习笔记之六
- glib学习笔记之二——GLib核心应用支持:The Main Event Loop
- Cisco配置DHCP中继代理
- Serialize an object using XMLTag(s): XML(JAVA对象序列化成XML)
- 如何使用silverlight加载动态库(dll)并发布到IIS7
- flex中的css应用
- 如何学习技术?
- [添加/删除程序]中无效信息的删除方法
- C#日期格式化
- Google Doc API研究之一:模拟页面上传任意类型文件
- js打开新窗口方法代码收集 .
- 在JSP页面中的应用JavaBean