对象的序列化存储:Serializable和Parceable.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
对象的序列化存储:Serializable和Parceable课案

对象的序列化存储:Serializable和Parceable简单来说,序列化就是将我们生成的对象进行存储起来(比如磁盘上),以用来将来使用或者在网络上进行传输,而反序列化呢,就是由我们的之前序列化生成的二进制串重新生成对象的过程。注意,这里我们反复说的序列化啦,反序列化啦,都是针对的对象,而非类。作者:i_seek_u来源:segmentfault|2016-12-05 18:32?收藏??分享在进行Android开发的时候我们有时候需要用到数据的持久化存储,或者在进程之间传递数据。其中就可能需要用到对象的序列化,经过序列化的对象之后可以通过Intent或者Boundle来传输了。接下来还是想些介绍下吧。1.什么叫序列化,什么叫反序列化序列化:将数据结构或对象转换成二进制串的过程。反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程。简单来说,序列化就是将我们生成的对象进行存储起来(比如磁盘上),以用来将来使用或者在网络上进行传输,而反序列化呢,就是由我们的之前序列化生成的二进制串重新生成对象的过程。注意,这里我们反复说的序列化啦,反序列化啦,都是针对的对象,而非类。因为我们是针对对象进行存取与传输的,而非类,当我们需要重新获取之前的对象的时候,是直接读取出来的(从文件或网络中),而非根据类new出一个对象,这点是需要注意的。2.如何序列化序列话的方式有两种,一种是实现Serializable接口,一种是实现Parceable接口,下面会具体介绍这两种方式。a.实现Serializable接口这种序列化方式是Java提供的,它的优点是简单,其实Serializable接口是个空接口,因而我们并不需要实现什么抽象方法,但是我们却往往需要在类中声明一个静态变量标识(serialVersionUID),但这不是必须的,我们不声明,依然可以实现序列化,但是这样的话会对反序列化产生一定的影响,可能会在我们对类做了修改之后而造成对象的反序列化失败。声明方式如下:private?static?final?long?serialVersionUID?=?8711368828010083044L;?注意,这里的值可以是任意值。下面我们来具体实现下。package?com.qc.admin.myserializableparceabledemo;??import?java.io.Serializable;??/**??*?Created?by?admin?on?2016/12/1.??*/??public?class?User?implements?Serializable?{??????private?static?final?long?serialVersionUID?=?519067123721295773L;??????public?int?userId;?????public?String?userName;?????public?boolean?isMale;??????public?User(int?userId,?String?userName,?boolean?isMale)?{??????????this.userId?=?userId;?????????this.userName?=?userName;?????????this.isMale?=?isMale;??????}??????@Override?????public?String?toString()?{?????????return?User{??+?????????????????userId?=??+?userId?+?????????????????,?userName?=??+?userName?+?????????????????,?isMale?=??+?isMale?+??????????????????};?????}?}??下面是序列化与反序列化过程:private?void?beginSerizable()?throws?IOException,?ClassNotFoundException?{??????????//?序列化?????????User?user?=?new?User(2016,?qian,?true);?????????ObjectOutputStream?out?=?new?ObjectOutputStream(new?FileOutputStream(new?File(getFilesDir(),?myfile.txt)));?????????out.writeObject(user);?????????out.close();??????????//?反序列化?????????//?注意,这里后面的

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档