base64编码

来源:互联网 发布:java怎么连接数据库 编辑:程序博客网 时间:2024/04/30 01:56
  1. /**
  2.  * 对base64编码的封装
  3.  * 
  4.  * @author 
  5.  */
  6. public class Base64Fiend {
  7.     /**
  8.      * 将byte类型的数据经过base64编码转为string.
  9.      * 
  10.      * @param fileData
  11.      *            byte类型的数据 .
  12.      * @return 转码后的数据,发生异常或者filedate为null时返回null.
  13.      */
  14.     public static String encode(byte[] fileData) {
  15.         if (fileData == null) {
  16.             //logger.info(("not get the fileData!"));
  17.             return null;
  18.         }
  19.         BASE64Encoder encoder = new BASE64Encoder();
  20.         return encoder.encode(fileData).replaceAll("//s*","");
  21.     }
  22.     /**
  23.      * 将string类型的数据转码为byte类型.
  24.      * 
  25.      * @param fileData
  26.      *            String 类型的数据.
  27.      * @return 转码后的数据byte类型,发生异常或者filedate为null时返回null.
  28.      */
  29.     public static byte[] decode(String fileData) {
  30.         if (fileData == null) {
  31.             return null;
  32.         }
  33.         BASE64Decoder decoder = new BASE64Decoder();
  34.         try {
  35.             return decoder.decodeBuffer(fileData);
  36.         } catch (IOException e) {
  37.             e.printStackTrace();
  38.             //logger.info(e.toString());
  39.         }
  40.         return null;
  41.     }
  42.     /**
  43.      * 将InputStream类型的数据转码为String.
  44.      * 
  45.      * @param fileData
  46.      *            InputStream类型的数据.
  47.      * @return 转码后的数据String类型,发生异常或者filedate为null时返回null.
  48.      */
  49.     public static String encode(InputStream fileData) {
  50.         if (fileData == null) {
  51.             return null;
  52.         }
  53.         BASE64Encoder encoder = new BASE64Encoder();
  54.         byte[] _fileData;
  55.         try {
  56.             _fileData = new byte[fileData.available()];
  57.             fileData.read(_fileData);
  58.             fileData.close();
  59.             return encoder.encode(_fileData).replaceAll("//s*","");
  60.         } catch (IOException e) {
  61.             e.printStackTrace();
  62.             //logger.info(e.toString());
  63.         }
  64.         return null;
  65.     }
  66.     /**对String编码.
  67.      * @param string
  68.      * @return
  69.      */
  70.     public static String encodeToString(String string){
  71.         if(string==null){
  72.             return null;
  73.         }else{
  74.             return encode(string.getBytes());
  75.         }
  76.     }
  77.     public static String decodeToString(String string){
  78.         if(string==null){
  79.             return null;
  80.         }else{
  81.             byte[] _byte=decode(string);
  82.             return new String(_byte);
  83.         }
  84.     }
  85.     
  86.     /**
  87.      * 将对象编码为base64的String.
  88.      * 
  89.      * @param object
  90.      *            要进行编码的对象.
  91.      * @return 编码后的对象对应的bease64String.
  92.      */
  93.     public static String encodeObject(Object object) {
  94.         String objectString = null;
  95.         ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
  96.         try {
  97.             ObjectOutputStream objectOutputStream = new ObjectOutputStream(
  98.                     arrayOutputStream);
  99.             objectOutputStream.writeObject(object);
  100.             objectString = encode(arrayOutputStream
  101.                     .toByteArray());
  102.         } catch (IOException e) {
  103.             //logger.info(e.toString());
  104.             e.printStackTrace();
  105.         }
  106.         return objectString;
  107.     }
  108.     /**
  109.      * 将bease64的String解编码为对象;
  110.      * 
  111.      * @param objectString
  112.      *            可以解编码为Object的Base64String,如果不能解编码为Object抛出异常.
  113.      * @return 解编码成功后的对象.
  114.      */
  115.     public static Object decodeObject(String objectString) {
  116.         Object object = null;
  117.         ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
  118.                 decode(objectString));
  119.         try {
  120.             ObjectInputStream objectInputStream = new ObjectInputStream(
  121.                     byteArrayInputStream);
  122.             object = objectInputStream.readObject();
  123.         } catch (IOException e) {
  124.             //logger.info(e.toString());
  125.             e.printStackTrace();
  126.         } catch (ClassNotFoundException e) {
  127.             //logger.info(e.toString());
  128.             e.printStackTrace();
  129.         }
  130.         return object;
  131.     }
  132. }
 
原创粉丝点击