java io 流比较常用的功能就是可以用来读写数据,但是除了这些功能之外,我们还可以利用io流来完成一些其他的功能,例如我们就可以利用对象流去做对象的clone,并且这种clone是一种深度的clone.
用对象做clone的基本思路就是将要clone的对象读入流中,然后将流中的对象读出来,就是对原来的对象一个clone。
Java代码
package com.unis.io.stream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public abstract class CloneUtil {
@SuppressWarnings(“unchecked”)
public static 《T extends Serializable》T clone(T obj)throws IOException,
ClassNotFoundException {
ByteArrayOutputStream bos = null;
ObjectOutputStream os = null;
ObjectInputStream is = null;
try {
bos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(bos);
oos.writeObject(obj);
oos.flush();
ois = new ObjectInputStream(new ByteArrayInputStream(bos
.toByteArray()));
} finally {
ois.close();
oos.close();
bos.close();
}
return (T)ois.readObject();
}
}
我们可以写一个对象进行测试一下,在这里我就不测试了。
在这里我要说的就是另外一个问题—单例
我们知道单例的一个重要的特点就是单例的类只能创建一个实例。
更多免费相关学习经验请访问:Tore_m_1206686_21115_1_1.html”>http://www.shangxueba.com/sTore_m_1206686_21115_1_1.html
你并不一定会从此拥有更美好的人生,