灵通163百科在线-实用的手机,证券免费资源网站

您现在的位置:首页 > K-JAVA资源 > JAVA软件工具 >

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

教程来源:www.lt163.com     点击数:     更新时间:2017-12-31 23:57

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

没有相关教程
UC浏览器 最先进实用的手机端浏览器,最大限度节省页面浏览流量,点击下载
老虎地图 绿色纯免费GPS定位省流量的最佳手机地图,点击下载
网秦手机安全系列 手机杀毒防盗,防火墙,构建手机安全,点击进入
塞班精品游戏 最流行最给力的塞班S60免签名名精品游戏合集,点击进入
阿里通 手机上轻松拨打网络电话和收发短信,高音质超省话费,资费标准
爱科手机电话 国内最好的手机网络电话领先品牌,价格低廉,点击查看
愤怒的小鸟2 全民挑战超流行休闲游戏力推新作-愤怒的小鸟2,点击查看
魔力旺旺 淘宝卖家首选的交易工具

资源下载排行
文章阅读排行