程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JAVA對象序列化保存為XML文件的工具類

JAVA對象序列化保存為XML文件的工具類

編輯:關於JAVA
今天看了看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; 
 } 
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved