import org.slf4j.Logger; import org.slf4j.LoggerFactory; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; /** * 序列化工具类 */ public class SerializeUtil { private final static Logger logger = LoggerFactory.getLogger(SerializeUtil.class); public static String serialize(Object object) { ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = null; try { oos = new ObjectOutputStream(bos); oos.writeObject(object); oos.flush(); return new BASE64Encoder().encode(bos.toByteArray()); }catch (IOException e) { logger.error("序列化错误",e); }finally { try { if (oos != null) { oos.close(); } bos.close(); } catch (IOException e) { e.printStackTrace(); } } return null; } public static Object unserialize( String object) { ByteArrayInputStream bis = null; ObjectInputStream ois = null; try { bis = new ByteArrayInputStream(new BASE64Decoder().decodeBuffer(object)); ois = new ObjectInputStream(bis); Object o = ois.readObject(); return o; } catch (IOException e) { logger.error("反序列化错误:IO异常",e); } catch (ClassNotFoundException e) { logger.error("反序列化错误:类找不到",e); }finally { try { if(bis!=null) { bis.close(); } if(ois!=null){ ois.close(); } } catch (IOException e) { e.printStackTrace(); } } return null; } }