有时候我们需要重新生成一个对象,这个时候我们可以通过序列化和反序列化来实现。使用对象输入输出流来实现。
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
/**
* 根据序列化、反序列化重新生成一个对象
* @author ll
*
*/
public class Serializer {
/**
* 根据传入的对象重新序列化一个对象;<br/>
* 首先将传入的对象序列化,再反序列化重新生成一个对象;
* @param source
* @return
*/
@SuppressWarnings("finally")
public static Object newObjectBySerialization(Object source) {
Object dest = null;
try {
// 序列化
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
ObjectOutputStream oosSource = new ObjectOutputStream(byteOutStream);
oosSource.writeObject(source);
oosSource.flush();
// 反序列化
ByteArrayInputStream byteInStream = new ByteArrayInputStream(byteOutStream.toByteArray());
ObjectInputStream oosDest = new ObjectInputStream(byteInStream);
dest = oosDest.readObject();
oosDest.close();
oosSource.close();
} catch(Exception e) {
System.err.println("Serializer error !");
} finally {
return dest;
}
}
}