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> T toObjectFromByte(byte[] data,Class<T> 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;
|
}
|
}
|