一个使用JAVA xmlencoder 例子

来源:互联网 发布:fastjson 解析json数组 编辑:程序博客网 时间:2024/05/17 02:53

http://www.blogjava.net/java2java/archive/2007/10/15/152900.html

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));
  }


 }


}

 

原创粉丝点击