码迷,mamicode.com
首页 > 编程语言 > 详细

java序列化与反序列化

时间:2016-06-21 20:44:56      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

 1 package com.sun.demo;
 2 
 3 import java.io.ByteArrayOutputStream;
 4 import java.io.IOException;
 5 import java.io.ObjectInputStream;
 6 import java.io.ObjectOutputStream;
 7 import java.io.Serializable;
 8 import java.sql.Blob;
 9 
10 import org.hibernate.Hibernate;
11 
12 public class SerializableDemo implements Serializable {
13 
14     private static final long serialVersionUID = 1L;
15 
16     private Blob statistic;
17 
18     /**
19      * 把对象转换为blob类型,以便保存到数据库
20      * 
21      * @param obj
22      * @return
23      */
24     public java.sql.Blob Object2Blob(Object obj) {
25         try {
26             ByteArrayOutputStream out = new ByteArrayOutputStream();
27             ObjectOutputStream outputStream = new ObjectOutputStream(out);
28             outputStream.writeObject(obj);
29             byte[] bytes = out.toByteArray();
30             outputStream.close();
31             return Hibernate.createBlob(bytes);
32         } catch (Exception e) {
33             e.printStackTrace();
34         }
35         return null;
36     }
37 
38     /**
39      * 将blob转换为对象
40      * 
41      * @param decBlob
42      * @return
43      */
44     public Object blob2Object(java.sql.Blob decBlob) {
45         try {
46             ObjectInputStream in = new ObjectInputStream(decBlob.getBinaryStream());
47             Object obj = in.readObject();
48             in.close();
49             return obj;
50         } catch (IOException e) {
51             e.printStackTrace();
52         } catch (Exception e) {
53             e.printStackTrace();
54         }
55         return null;
56     }
57 
58     public Blob getStatistic() {
59         return statistic;
60     }
61 
62     public void setStatistic(Blob statistic) {
63         this.statistic = statistic;
64     }
65 
66 }

 

这里几个注意点

一、

在Eclipse中,提供两种方式让我们快速添加SerialVersionUid。

add default serial version ID:

add generated serial version ID:

对于第一种,需要了解哪些情况是可兼容的,哪些根本就不兼容。

第二种方式,是根据类的结构产生的hash值。增减一个属性、方法等,都可能导致这个值产生变化。

java序列化与反序列化

标签:

原文地址:http://www.cnblogs.com/sun-space/p/5604707.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!