|
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 CE * */ 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)); }
}
}
|