java继承serislizable接口,简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。实现了Java对象的序列化。
在一下情况可以考虑使用序列化:
a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;
b)当你想用套接字在网络上传送对象的时候;
c)当你想通过RMI传输对象的时候;
示例:
public class Order implements java.io.Serializable {
private Long id;
private String code;
private String name;
}
将order对象写入流中:
public InputStream getOrderInfoAsStream(Order order) {
InputStream ret = null;
ByteArrayOutputStream baos = null;
ObjectOutputStream ous = null;
if (order == null) {
return ret;
}
try {
baos = new ByteArrayOutputStream();
ous = new ObjectOutputStream(baos);
ous.writeObject(order);
ret = FileUtil.getInputStreamFromBytes(baos.toByteArray());
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (baos != null) {
baos.close();
}
if (ous != null) {
ous.close();
}
} catch (Exception e) {
}
}
return ret;
}
将对象从流中读出:
public Order getOrder(InputStream is) {
Order ret = null;
ObjectInputStream ois = null;
try {
if (is != null) {
ois = new ObjectInputStream(is);
ret = (Order) ois.readObject();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (ois != null) {
ois.close();
}
} catch (Exception e) {
}
}
return ret;
}