A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

为什么需要序列化和返回序列化?对象的序列化主要什么用途啊?请教大神解答。。最好有相关代码说明哦!谢谢啦。。。

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 鼓励分+1

查看全部评分

2 个回复

正序浏览
范晓冲 发表于 2014-1-4 16:56
为什么需要序列化和反序列化?
                当两个进程在进行远程通信时,彼此可以发送各种类型的数据 ...

谢谢,貌似有一点点感觉了。。。
回复 使用道具 举报
本帖最后由 范晓冲 于 2014-1-4 16:58 编辑

为什么需要序列化和反序列化?
                当两个进程在进行远程通信时,彼此可以发送各种类型的数据。
                无论是何种类型数据,都会以二进制序列的形式在网络上传送。
                发送方需要把这个Java对象转换为字节序列,才能在网络上传送;
                接收方则需要把字节序列再恢复为Java对象。
        把Java对象转换为字节序列的过程称为对象的序列化
        把字节序列转换为Java对象的过程称为对象的反序列化

序列化和反序列化的步骤和实例
1、Person类实现Serializable接口:
class Person implements Serializable{
                int age;
                String name;
                public Person(int age,String name){
                                super();
                                this.age=age;
                                this.name=name;
                }
}
2、通过ObjectOutputStream将Person对象的数据写入到文件中,即序列化

                Person person=new Person(22,"laofan");
                FileOutputStream fos=null;
                ObjectOutputStream oos=null;
               
                //序列化
                fos=new FileOutputStream("d:/p.txt");
                oos=new ObjectOutputStream(fos);

                oos.writeObject(person);
                oos.flush();
                oos.close();
                fos.close();

3、通过ObjectInputStream将文件中二进制数据反序列化成Person对象:

                ObjectInputStream ois=null;
                FileInputStream fis=null;
               
                //反序列化
                fis=new FileInputStream("d:/p.txt");
                ois=new ObjectInputStream(fis);
                Person p=()ois.readObject();
                System.out.println(p.name);

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马