XMLENCODER是一个可以将一个JAVA对象以XML方式存储,在需要再次使用该对象时候可以使用XMLDECODER进行还原,比JAVA对象流好用.
测试程序:
package com.sitechasia.test.beans;
import java.io.OutputStream;
import junit.framework.TestCase;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.funambol.framework.engine.source.ContentType;
import com.funambol.framework.engine.source.SyncSourceInfo;
import com.sitechasia.test.tools.BeanXmlEncoder;
import com.sitechasia.uab.sync.source.UabSyncSource;
public class TestBeanXmlEncoder extends TestCase {
public TestBeanXmlEncoder(String arg0) {
super(arg0);
}
protected void setUp() throws Exception {
super.setUp();
}
Log log = LogFactory.getLog(TestBeanXmlEncoder.class);
public void testEncodeUabSyncSource() {
OutputStream beanout = System.out;
UabSyncSource us = null;
try {
us = new UabSyncSource();
us.setDebug(true);
us.setName("card3");
us.setSourceURI("card3");
SyncSourceInfo info = null;
ContentType[] cts = new ContentType[3];
cts[0] = new ContentType("text/vcard", "2.1");
cts[1] = new ContentType("text/x-vcard", "2.1");
cts[2] = new ContentType("text/plain", "2.1");
info = new SyncSourceInfo(cts, 1);
us.setInfo(info);
BeanXmlEncoder.EncoderBean(us, beanout);
} catch (Exception e) {
System.out.println("Fail to sav Bean");
}
}
protected void tearDown() throws Exception {
super.tearDown();
}
}
工具类 :
package com.sitechasia.test.tools;
import java.beans.XMLEncoder;
import java.io.OutputStream;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* 对一个JAVA类进行编码保存
* @author MCSA
*
*/
public class BeanXmlEncoder {
final static Log log = LogFactory.getLog(BeanXmlEncoder.class);
public static void EncoderBean(Object bean, OutputStream beanstore) {
XMLEncoder encoder = null;
try {
encoder = new XMLEncoder(beanstore);
encoder.writeObject(bean);
encoder.flush();
encoder.close();
} catch (Exception e) {
log.error("Fail Encode bean"+ToStringBuilder.reflectionToString(bean));
log.error("---------------------------------------------------------
");
log.error(ExceptionUtils.getStackTrace(e));
}
}
}