程式先锋Java技术维客

一个使用JAVA xmlencoder 例子

十月 14, 2008 by czl

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

 }

}



评论:

理由?

发表于 202.106.180.62 在 2009年01月13日, 11:26 上午 CST #

请阐明他好用的理由?,效率?安全?

发表于 202.106.180.62 在 2009年01月13日, 11:28 上午 CST #

发表一条评论:
  • HTML语法: 启用

Search

 

« 九月 2010
星期日星期一星期二星期三星期四星期五星期六
   
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
  
       
今天

Feeds

Navigation