package com.qxueyou.scc.base.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; import org.apache.commons.io.IOUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; /** * ÐòÁл¯¹¤¾ßÀà * @author µÂ»¢ * */ public class SerializeUtils { private static Logger log = LogManager.getLogger("SerializeUtils"); /** * ½«¶ÔÏóת»»Îª×Ö½ÚÊý×é * @param obj ¿ÉÐòÁл¯µÄ¶ÔÏó * @return ×Ö½ÚÊý×é */ public static byte[] toByteArrayFromObject(Object obj){ if(!(obj instanceof Serializable)){ return new byte[0]; } ByteArrayOutputStream bo = new ByteArrayOutputStream(); ObjectOutputStream oo = null; try { oo = new ObjectOutputStream(bo); oo.writeObject(obj); return bo.toByteArray(); } catch (IOException e) { log.error(e,e); } finally{ IOUtils.closeQuietly(oo); } return new byte[0]; } /** * ½«×Ö½ÚÊý×éΪ¶ÔÏóת»» * @param data ×Ö½ÚÊý×é * @param cls Ҫת»¯µÄ¶ÔÏóÀàÐÍ * @return Ҫת»¯µÄ¶ÔÏó */ public static T toObjectFromByte(byte[] data,Class cls){ ByteArrayInputStream bi = new ByteArrayInputStream(data); ObjectInputStream oi = null; try { oi = new ObjectInputStream(bi); Object obj = oi.readObject(); return cls.cast(obj); } catch (IOException e) { log.error(e,e); } catch (ClassNotFoundException e) { log.error(e,e); } finally{ IOUtils.closeQuietly(oi); } return null; } }