欢迎光临
我们一直在努力

JAVA对象序列化保存为XML文件的工具类-JSP教程,Java技巧及代码

建站超值云服务器,限时71元/月

 

今天看了看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;
 }
}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » JAVA对象序列化保存为XML文件的工具类-JSP教程,Java技巧及代码
分享到: 更多 (0)