package com.ycsoft.commons.helper;
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
* XML 辅助类。包含解析XML文件等常用的功能。
* @author hh
* @date 2009/12/3 pm
*/
public class XMLHelper {
private XMLHelper(){
}
/**
* 将Object序列化到XML文件
* @param obj 目标对象
* @param fileName 完整路径的文件名
* @throws IOException
*/
public static void objectXmlEncoder(Object obj , String fileName) throws IOException{
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();
}
/**
* 将序列化的文件解码到List
* @param source 完整路径的文件名
*/
public static List<Object> objectXmlDecoder(String source) throws IOException{
List<Object> objList = new ArrayList<Object>();
File fin = new File( source );
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){
}
fis.close();
decoder.close();
return objList;
}
}