public static Object deepcopy(Object obj) throws Exception{
try {
ByteArrayOutputStream out = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(out);
oos.writeObject(obj);
oos.close();
byte[] buf = out.toByteArray();
ByteArrayInputStream in = new ByteArrayInputStream(buf);
ObjectInputStream ois = new ObjectInputStream(in);
Object o = ois.readObject();
in.close();
return o;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
oos不是out的过滤器吗,它关了out也应该关了吧
追答ObjectOutputStream 里包含 ByteArrayOutputStream ,要从外到内显示关闭。
你可以理解为byte管道外面有一层object管道。