读书人

Java的Serializable处置

发布时间: 2012-11-04 10:42:42 作者: rapoo

Java的Serializable处理

?? 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;}

?

读书人网 >其他相关

热点推荐