在 Java 中如何进行 BASE64 编码和解码(转)

来源:互联网 发布:八字数据库辛金日元 编辑:程序博客网 时间:2024/05/16 17:17

BASE64 编码是一种常用的字符编码,在很多地方都会用到。JDK 中提供了非常方便的 BASE64Encoder 和 BASE64Decoder,用它们可以非常方便的完成基于 BASE64 的编码和解码。下面是本人编的两个小的函数,分别用于 BASE64 的编码和解码:


import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;
// 将 s 进行 BASE64 编码
public static String getBASE64(String s) {
if (s == null) return null;
return (new sun.misc.BASE64Encoder()).encode( s.getBytes() );
}

// 将 BASE64 编码的字符串 s 进行解码
public static String getFromBASE64(String s) {
if (s == null) return null;
BASE64Decoder decoder = new BASE64Decoder();
try {
byte[] b = decoder.decodeBuffer(s);
return new String(b);
} catch (Exception e) {
return null;
}
}

/**
* 对象转Byte数组
*
* @param obj
* @return
* @throws Exception
*/
public static byte[] objectToBytes(Object obj) throws Exception {
logger.debug("objectToString called ");
ByteArrayOutputStream out = new ByteArrayOutputStream();
ObjectOutputStream sOut = new ObjectOutputStream(out);
sOut.writeObject(obj);
sOut.flush();
byte[] bytes = out.toByteArray();

logger.debug(bytes.toString());

return bytes;
  }

/**
* 字节数组转对象
*
* @param content
* @return
* @throws Exception
*/
public static Object bytesToObject(byte[] bytes) throws Exception {
logger.debug("bytesToObject called ");

//byte转object
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
ObjectInputStream sIn = new ObjectInputStream(in);
return sIn.readObject();

}



原创粉丝点击