首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

sun.misc.BASE64Encoder存在的有关问题及其解决办法

2012-12-22 
sun.misc.BASE64Encoder存在的问题及其解决方法问题背景:最近在开发中用到了sun.misc.BASE64Encoder。发现

sun.misc.BASE64Encoder存在的问题及其解决方法
问题背景:   
     最近在开发中用到了sun.misc.BASE64Encoder。发现两个问题:
     其一、当编码的字节较长时,encode出来的字符串会自动加入\n\r进行自动换行。针对这个问题,原因是rfc规范规定76个字符换一次行。
     其二、编码效率较低。

解决办法:  
     1、重写BASE64Encoder:

 public static void main(String[] args) throws Exception {                     BASE64Encoder encoder=new BASE64Encoder();        sun.misc.BASE64Encoder sunEncoder=new sun.misc.BASE64Encoder();        byte[] testBytes=new byte[1024*1024*2];        long start=System.currentTimeMillis();        for(int i=0;i<10;i++)        {            sunEncoder.encode(testBytes);        }                System.out.println("[sun encoder]use time :"+(System.currentTimeMillis()-start));        start=System.currentTimeMillis();        for(int i=0;i<10;i++)        {            encoder.encode(testBytes);        }                System.out.println("[our encoder]use time :"+(System.currentTimeMillis()-start));    }

     测试后发现,重写后,编码自动回行问题解决,编码效率也会提高一倍。

热点排行