快速业务通道

JAVA对象序列化保存为XML文件的工具类 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24

JAVA对象序列化保存为XML文件的工具类

时间:2010-05-21 清华大学汽车工程开发研究院 殷晋

今天看了看java.beans包,发现了两个好东西,XMLEncoder和XMLDecoder。发现自己以前把从XML存取对象真是太费力气啦。做了小工具类,以后可以用用了。

以下是引用片段:package com.imct.util;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.util.ArrayList;import java.util.List;/** * <title>使用XML文件存取可序列化的对象的类</title> * <description>提供保存和读取的方法</description> * @author 殷晋 * <copyright>清华大学汽车工程开发研究院@2005</copyright> * @version 1.0 * 2005-8-5 16:44:49 */public class ObjectToXMLUtil{ /**  * 把java的可序列化的对象(实现Serializable接口)序列化保存到XML文件里面,如果想一次保存多个可序列化对象请用集合进行封装  * 保存时将会用现在的对象原来的XML文件内容  * @param obj 要序列化的可序列化的对象  * @param fileName 带完全的保存路径的文件名  * @throws FileNotFoundException 指定位置的文件不存在  * @throws IOException 输出时发生异常  * @throws Exception 其他运行时异常  */ public static void objectXmlEncoder(Object obj,String fileName)  throws FileNotFoundException,IOException,Exception {  //创建输出文件  File fo = new File(fileName);  //文件不存在,就创建该文件  if(!fo.exists())  {   //先创建文件的目录      String path = fileName.substring(0,fileName.lastIndexOf(''.''));      File pFile = new File(path);      pFile.mkdirs();  }  //创建文件输出流  FileOutputStream fos = new FileOutputStream(fo);  //创建XML文件对象输出类实例  XMLEncoder encoder = new XMLEncoder(fos);  //对象序列化输出到XML文件  encoder.writeObject(obj);  encoder.flush();  //关闭序列化工具  encoder.close();  //关闭输出流  fos.close(); } /**  * 读取由objSource指定的XML文件中的序列化保存的对象,返回的结果经过了List封装  * @param objSource 带全部文件路径的文件全名  * @return 由XML文件里面保存的对象构成的List列表(可能是一个或者多个的序列化保存的对象)  * @throws FileNotFoundException 指定的对象读取资源不存在  * @throws IOException 读取发生错误  * @throws Exception 其他运行时异常发生  */ public static List objectXmlDecoder(String objSource)  throws FileNotFoundException,IOException,Exception {  List objList = new ArrayList();  File fin = new File(objSource);  FileInputStream fis = new FileInputStream(fin);  XMLDecoder decoder = new XMLDecoder(fis);  Object obj = null;  try  {   while( (obj = decoder.readObject()) != null)   {    objList.add(obj);   }  }  catch (Exception e)  {   // TODO Auto-generated catch block  }  fis.close();  decoder.close();  return objList; }}

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号