package com.joe.utilities.common.util;
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import org.apache.log4j.Logger;
/**
*
* Bean与Xml转换方法类
*
* @author rq2.
* @version 1.0.0, 2007-09-14
* @see
* @since
*
*/
public class BeanXml {
private static Logger logger = Logger.getLogger("BeanXml");
/**
* Bean转换成Xml
*
* @param object
* @return
*/
public static String Bean2Xml(Object object) {
String beanXml = "";
ByteArrayOutputStream out = null;
XMLEncoder encoder = null;
try {
out = new ByteArrayOutputStream();
encoder = new XMLEncoder(out);
// 对象序列化输出到XML文件
encoder.writeObject(object);
encoder.flush();
// 关闭序列化工具
encoder.close();
// 关闭输出流
out.flush();
beanXml = new String(out.toByteArray(), "utf-8");
out.close();
} catch (Exception e) {
logger.error("Bean2Xml转换失败");
} finally {
if (encoder != null) {
encoder.close();
}
if (out != null) {
try {
out.close();
} catch (IOException e) {
logger.error("Bean2Xml转换失败");
}
}
}
return beanXml;
}
/**
* Xml转换成Object
*
* @param xml
* @return
*/
public static Object Xml2Bean(String xml) {
Object object = null;
ByteArrayInputStream input = null;
XMLDecoder decoder = null;
try {
input = new ByteArrayInputStream(xml.getBytes("utf-8"));
decoder = new XMLDecoder(input);
object = decoder.readObject();
input.close();
decoder.close();
} catch (Exception e) {
logger.error("Xml2Bean转换失败");
} finally {
if (decoder != null) {
decoder.close();
}
if (input != null) {
try {
input.close();
} catch (IOException e) {
logger.error("Xml2Bean转换失败");
}
}
}
return object;
}
}