importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.io.IOException;importjava.io.ObjectInputStream;importjava.io.ObjectOutputStream;importjava.io.Serializable;
@SuppressWarnings("restriction")public classBase64 {/*** str 编码为base64
*
*@paramString s
*@returnString base64
**/
public staticString getBase64(String s) {if (s == null)return null;return (newsun.misc.BASE64Encoder()).encode(s.getBytes());
}/*** byte[] 编码为base64
*
*@parambyte[] ba
*@returnString base64
**/
public static String getBase64(byte[] ba) {if (ba == null)return null;return (newsun.misc.BASE64Encoder()).encode(ba);
}/*** base64 解码为 byte[]
*
*@paramString base64
*@returnbyte[]
*@throwsIOException
**/
public static byte[] base64ToByteArray(String base64) throwsIOException {if (base64 == null)return null;return (newsun.misc.BASE64Decoder()).decodeBuffer(base64);
}/*** 将base64 字符串反序列化为指定的类
*
*@parambase64 序列化后用Base64编码的字符串
*@paramserializedClass 序列化对象的class
*
*@returntyped object, can be null.
**/@SuppressWarnings("unchecked")public static T deFromBase64(String base64, ClassserializedClass) {
Object o= null;byte[] ba = null;
ByteArrayInputStream bai= null;
ObjectInputStream oi= null;try{
ba=Base64.base64ToByteArray(base64);
bai= newByteArrayInputStream(ba);
oi= newObjectInputStream(bai);
o=oi.readObject();
}catch(IOException e) {
System.out.println("反序列化失败!");
e.printStackTrace();
}catch(ClassNotFoundException e) {
System.out.println("类未找到!");
e.printStackTrace();
}finally{try{if (oi != null) {
oi.close();
}if (bai != null) {
bai.close();
}
}catch(IOException e) {
System.out.println("关闭流异常!");
e.printStackTrace();
}
}return o == null ? null: (T) o;
}/*** 将对象序列化为Base64 字符串
*
*@paramobj 实现了可序列化接口的对象
*@returnString 对象序列化为字符串后编码为Base64
**/
public staticString se2base64(Serializable obj) {byte[] ba = null;
ByteArrayOutputStream baos= null;
ObjectOutputStream oos= null;try{
baos= newByteArrayOutputStream();
oos= newObjectOutputStream(baos);
oos.writeObject(obj);
ba=baos.toByteArray();
}catch(IOException e) {
System.out.println("序列化失败!");
}finally{try{if (baos != null) {
baos.close();
}if (oos != null) {
oos.close();
}
}catch(IOException e) {
e.printStackTrace();
}
}return ba == null ? null: Base64.getBase64(ba);
}
}