• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 14
    • 下载费用:30 金币  

    重庆时时彩毒胆怎么下: 一种序列化和反序列化的方法、装置及系统.pdf

    关 键 词:
    一种 序列 方法 装置 系统
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201010122965.X

    申请日:

    2010.03.01

    公开号:

    CN102193787A

    公开日:

    2011.09.21

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 专利权人的姓名或者名称、地址的变更IPC(主分类):G06F 9/44变更事项:专利权人变更前:深圳市金蝶中间件有限公司变更后:深圳市金蝶天燕中间件股份有限公司变更事项:地址变更前:518057 广东省深圳市南山区高新区中区麻雀岭工业区M-6栋第二层1、3、4区变更后:518057 广东省深圳市南山区粤海街道高新技术产业园南区科技南十二路2号金蝶软件园A栋2层南座|||授权|||实质审查的生效IPC(主分类):G06F 9/44申请日:20100301|||公开
    IPC分类号: G06F9/44 主分类号: G06F9/44
    申请人: 深圳市金蝶中间件有限公司
    发明人: 林育智
    地址: 518057 广东省深圳市南山区高新区中区麻雀岭工业区M-6栋第二层1、3、4区
    优先权:
    专利代理机构: 北京三高永信知识产权代理有限责任公司 11138 代理人: 何文彬
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201010122965.X

    授权公告号:

    |||102193787B||||||

    法律状态公告日:

    2017.01.18|||2014.12.17|||2011.11.23|||2011.09.21

    法律状态类型:

    专利权人的姓名或者名称、地址的变更|||授权|||实质审查的生效|||公开

    摘要

    本发明公开了一种序列化和反序列化的方法、装置及系统,属于计算机领域。所述序列化的方法包括:从BitSet中获取其自身的长度,并将所述长度存储在数据流中;从所述BitSet中获取每个状态位,将每次获取的八位状态位组成字节并存储在所述数据流中。所述反序列化的方法包括:建立一个BitSet,从数据流中获取BitSet的长度,将所述长度存储在所述建立的BitSet中;将所述数据流中的存储状态位的每个字节分别与八个状态码进行位与操作,恢复出所述每个字节包括的八位状态位;将所述每个字节的八位状态位存储在所述建立的BitSet中。本发明能够提供一种脱离具体编程语言的限制的序列化和反序列化的方法,以减少对BitSet进行维护的成本。

    权利要求书

    1.一种序列化的方法,其特征在于,所述方法包括:从BitSet中获取其自身的长度,并将所述长度存储在数据流中;从所述BitSet中获取每位状态位,将每次获取的八位状态位组成字节并存储在所述数据流中。2.如权利要求1所述的方法,其特征在于,所述从所述BitSet中获取每位状态位,将每次获取的八位状态位组成字节,具体包括:设置第一指针指向所述BitSet存储的第一位状态位;读取所述第一指针指向的状态位,缓存所述读取的状态位,并设置所述第一指针指向下一位状态位;当所述缓存的状态位达到八位时,将所述缓存的状态位组成一个字节,并清空所述缓存的状态位。3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:当获取到最后一位状态位且未组成字节的状态位不足八位时,对所述未组成字节的状态位补零得到八位状态位,将所述八位状态位组成字节并存储在所述数据流中。4.一种对权利要求1得到的数据流进行反序列化的方法,其特征在于,所述方法包括:建立一个BitSet,从数据流中获取BitSet的长度,将所述长度存储在所述建立的BitSet中;将所述数据流中的每个存储状态位的字节分别与八个状态码进行位与操作,恢复出所述每个存储状态位的字节包括的八位状态位;将所述每个字节的八位状态位存储在所述建立的BitSet中。5.如权利要求4所述的方法,其特征在于,所述将所述数据流中的每个存储状态位的字节分别与八个状态码进行位与操作,恢复出所述每个存储状态位的字节包括的八位状态位,具体包括:设置第二指针指向所述数据流中的第一个存储状态位的字节;读取所述第二指针指向的字节,设置所述第二指针指向下一个字节;将所述字节分别与所述八个状态码进行位与操作,恢复出所述字节包括的八位状态位。6.如权利要求4所述的方法,其特征在于,所述方法还包括:将所述长度与数字八进行除法运算得到余数,当所述余数的值不为零时,在所述数据流中的最后一个字节存储的八位状态位中,选取前余数位的状态位,将所述选取的状态位存储在所述建立的BitSet中。7.如权利要求4-6任意一项权利要求所述的方法,其特征在于,所述八个状态码分别为00000001、0000010、00000100、00001000、00010000、00100000、01000000和10000000。8.一种序列化的装置,其特征在于,所述装置包括:获取???,用于从BitSet中获取其自身的长度,并将所述长度存储在数据流中;组成???,用于从所述BitSet中获取每位状态位,将每次获取的八位状态位组成字节并存储在所述数据流中。9.如权利要求8所述的装置,其特征在于,所述组成??榫咛灏ǎ?/claim-text>第一设置单元,用于设置第一指针指向所述BitSet存储的第一位状态位;第一读取单元,用于读取所述第一指针指向的状态位,缓存所述读取的状态位,并设置所述第一指针指向下一位状态位;组成单元,用于当所述缓存的状态位达到八位时,将所述缓存的状态位组成一个字节,并清空所述缓存的状态位。10.如权利要求8或9所述的装置,其特征在于,所述装置还包括:补零???,用于当获取到最后一位状态位且未组成字节的状态位不足八位时,对所述未组成字节的状态位补零得到八位状态位,将所述八位状态位组成字节并存储在所述数据流中。11.一种对权利要求8得到的数据流进行反序列化的装置,其特征在于,所述装置包括:建立???,用于建立一个BitSet,从数据流中获取BitSet的长度,将所述长度存储在所述建立的BitSet中;恢复???,用于将所述数据流中的每个存储状态位的字节分别与八个状态码进行位与操作,恢复出所述每个字节包括的八位状态位;存储???,用于将所述每个字节的八位状态位存储在所述建立的BitSet中。12.如权利要求11所述的装置,其特征在于,所述恢复??榫咛灏ǎ?/claim-text>第二设置单元,用于设置第二指针指向所述数据流中的第一个存储状态位的字节;第二读取单元,用于读取所述第二指针指向的字节,设置所述第二指针指向下一个字节;位与操作单元,用于将所述字节分别与所述八个状态码进行位与操作,恢复出所述字节包括的八位状态位。13.如权利要求11所述的装置,其特征在于,所述装置还包括:选取???,用于将所述长度与数字八进行除法运算得到余数,当所述余数不为零时,在所述数据流中的最后一个字节存储的八位状态位中,选取前余数位的状态位,将所述选取的状态位存储在所述建立的BitSet中。14.如权利要求11-13任意一项权利要求所述的装置,其特征在于,所述八个状态码分别为00000001、0000010、00000100、00001000、00010000、00100000、01000000和10000000。15.一种序列化和反序列化的系统,其特征在于,所述系统包括序列化的装置和反序列化的装置;所述序列化的装置,用于从BitSet中获取其自身的长度,并将所述长度存储在数据流中;从所述BitSet中获取每位状态位,将每次获取的八位状态位组成字节并存储在所述数据流中;所述反序列化的装置,用于建立一个BitSet,从所述数据流中获取BitSet的长度,将所述长度存储在所述建立的BitSet中;将所述数据流中的每个存储状态位的字节分别与八位状态码进行位与操作,恢复出所述每个存储状态位的字节包括的八位状态位;将所述每个字节的八位状态位存储在所述建立的BitSet中。

    说明书

    一种序列化和反序列化的方法、装置及系统

    技术领域

    本发明涉及计算机领域,特别涉及一种序列化和反序列化的方法、装置及系统。

    背景技术

    BitSet(位集合)用于存储对象中的每个条件的状态位,每个状态位用二进制数据0或1表示。在BitSet中存储的状态位需要持久化地保存,可以通过序列化的方法对BitSet中存储的状态位进行保存,并通过反序列化的方法恢复每位状态位。

    目前Java、C++和C#等编程语言都有各自的一套序列化和反序列化的方法,因此,可以利用Java、C++或C#等编程语言提供的序列化的方法对BitSet进行序列化,相应地,利用Java、C++或C#等编程语言提供的反序列化的方法恢复出BitSet中的每位状态位。

    在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

    由于每种编程语言只支持自身提供的一套序列化和反序列化的方法,使得现有的序列化和反序列化的方法都受到具体的编程语言的限制,从而增加了对BitSet进行维护的成本。

    发明内容

    为了能够提供一种脱离具体编程语言的限制的序列化和反序列化的方法,以减少对BitSet进行维护的成本,本发明提供了一种序列化和反序列化的方法、装置及系统。所述技术方案如下:

    一种序列化的方法,所述方法包括:

    从BitSet中获取其自身的长度,并将所述长度存储在数据流中;

    从所述BitSet中获取每位状态位,将每次获取的八位状态位组成字节并存储在所述数据流中。

    一种对利用所述序列化的方法得到的数据流进行反序列化的方法,所述方法包括:

    建立一个BitSet,从数据流中获取BitSet的长度,将所述长度存储在所述建立的BitSet中;

    将所述数据流中的每个存储状态位的字节分别与八个状态码进行位与操作,恢复出所述每个存储状态位的字节包括的八位状态位;

    将所述每个字节的八位状态位存储在所述建立的BitSet中。

    一种序列化的装置,所述装置包括:

    获取???,用于从BitSet中获取其自身的长度,并将所述长度存储在数据流中;

    组成???,用于从所述BitSet中获取每位状态位,将每次获取的八位状态位组成字节并存储在所述数据流中。

    一种对利用所述序列化的装置得到的数据流进行反序列化的装置,所述装置包括:

    建立???,用于建立一个BitSet,从数据流中获取BitSet的长度,将所述长度存储在所述建立的BitSet中;

    恢复???,用于将所述数据流中的每个存储状态位的字节分别与八个状态码进行位与操作,恢复出所述每个存储状态位的字节包括的八位状态位;

    存储???,用于将所述每个字节的八位状态位存储在所述建立的BitSet中。

    一种序列化和反序列化的系统,所述系统包括序列化的装置和反序列化的装置;

    所述序列化的装置,用于从BitSet中获取其自身的长度,并将所述长度存储在数据流中;从所述BitSet中获取每位状态位,将每次获取的八位状态位组成字节并存储在所述数据流中;

    所述反序列化的装置,用于建立一个BitSet,从所述数据流获取BitSet的长度,将所述长度存储在所述建立的BitSet中;将所述数据流中的每个存储状态位的字节分别与八个状态码进行位与操作,恢复出所述每个存储状态位的字节包括的八位状态位;将所述每个字节的八位状态位存储在所述建立的BitSet中。

    在进行序列化操作时,通过从BitSet中获取每位状态位,并将每次获取的八位状态位组成一个字节并存储在数据流中;在进行反序列化操作时,通过将数据流中存储状态位的每个字节分别与八个状态码进行位与操作,恢复出每个字节包括的八位状态位,并将每个字节包括的八位状态位存储在BitSet中。由于字节是用于计量存储容量和传输容量的一种基本的计量单位,每一种编程语言都能识别字节,因而每种编程语言都能支持该序列化和反序列化的操作,从而脱离了具体编程语言的限制,减少了对BitSet进行维护的成本。

    附图说明

    图1是本发明实施例1提供的一种序列化的方法流程图;

    图2是本发明实施例2提供的一种序列化的方法流程图;

    图3是本发明实施例3提供的一种反序列化的方法流程图;

    图4是本发明实施例4提供的一种反序列化的方法流程图;

    图5是本发明实施例5提供的一种序列化的装置示意图;

    图6是本发明实施例6提供的一种反序列化的装置示意图;

    图7是本发明实施例7提供的一种序列化和反序列化的系统示意图。

    具体实施方式

    为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

    实施例1

    如图1所示,本发明实施例提供了一种序列化的方法,包括:

    步骤101:从BitSet中获取其自身的长度,并将该长度存储在数据流中;

    步骤102:从BitSet中获取每位状态位,将每次获取的八位状态位组成字节并存储在数据流中。

    在本发明实施例中,从BitSet中获取每位状态位,并将每次获取的八位状态位组成一个字节并存储在数据流中。由于字节是用于计量存储容量和传输容量的一种基本的计量单位,每一种编程语言都能识别字节,因而每种编程语言都能支持本实施例提供的序列化的方法,从而脱离了具体编程语言的限制,减少了对BitSet进行维护的成本。

    实施例2

    如图2所示,本发明实施例提供了一种序列化的方法,包括:

    步骤201:从BitSet中获取其自身的长度,并将其存储在数据流中,其中,BitSet的长度为其自身中包括的状态位的总数目;

    其中,数据流为事先划分的存储区域,数据流可以为文件流等形式,用于存储对BitSet进行序列化后得到的结果。

    其中,对象中包括一个或多个条件,每个条件的状态位用二进制数据0或1表示。BitSet是一种数据结构,BitSet用于存储BitSet的长度和按对象中的条件的顺序存储每个条件的状态位。另外,在数据流中事先划分一个或多个字节的空间用于存储BitSet的长度,通常在数据流中划分前四个字节的空间用于存储BitSet的长度。

    假设,对象中包括A、B、C、D、E、F、G、H和J九个条件,且九个条件的状态位分别为1、0、0、1、1、1、0、0、1,则在BitSet中存储BitSet的长度9和依次存储九个条件的状态位分别为1、0、0、1、1、1、0、0、1。

    其中,在本步骤中,可以直接从BitSet读取BitSet的长度。例如,直接从BitSet读取其自身的长度9,并将其保存到数据流的前4个字节中。

    步骤202:设置第一指针指向BitSet中存储的第一位状态位;

    步骤203:从BitSet中读取第一指针指向的状态位,缓存读取的状态位,设置第一指针指向下一位状态位;

    例如,在步骤202中,设置第一指针指向BitSet的第一位状态位1,在本步骤中读取第一指针指向的状态位1,并将其缓存,再设置第一指针指向下一位状态位即指向状态位0。

    步骤204:判断读取的当前状态位是否为最后一位状态位,如果否,则执行步骤205,如果是,则执行步骤207;

    步骤205:判断缓存的状态位是否达到八位,如果否,则执行步骤203,如果是,则执行步骤206;

    例如,重复地执行步骤203-205,依次从BitSet中读取八位状态位分别为1、0、0、1、1、1、0和0,并分别缓存每次读取的状态位,如此得到缓存的八位状态位分别为1、0、0、1、1、1、0和0,然后执行步骤206。

    步骤206:将缓存的八位状态位组成一个字节,并保存在数据流中,清空缓存的状态位,返回执行步骤203;

    其中,一个字节由八位二进制数据组成,由于BitSet中的每一位状态位都为一位二进制数据,因此,可以将缓存的八位状态位组成一个字节,使得该字节保存八位状态位。在组成字节时,按缓存八位状态位的先后顺序分别将八位状态位作为字节中从右到左的八个二进制数据,如此,将最先缓存的一位状态位作为字节中的最右边的一位二进制数据,最后缓存的一位状态位作为字节中的最左边的一位二进制数据。另外,在数据流中也是按组成每个字节的先后顺序存储每个字节。

    例如,在本实施例中,先后缓存的八位状态位分别1、0、0、1、1、1、0和0,将该八位状态位组成一个字节为00111001,并将该字节保存在数据流中,将缓存的该八位状态位清空,返回执行步骤203,其中,由于已从BitSet中读取第八位状态位,则此时已设置第一指针指向BitSet中的第九位状态位即指向状态位1。

    其中,由于字节是用于计量存储容量和传输容量的一种基本的计量单位,每一种编程语言都能识别字节,因而使得每种编程语言都能支持本实施例提供的序列化的方法。

    步骤207:判断缓存的状态位是否达到八位,如果是,则执行步骤208,如果否,则执行步骤209;

    步骤208:将缓存的八位状态位组成一个字节,并保存在数据流中,清空缓存的状态位,操作结束;

    步骤209:对缓存的状态位进行补零,使得缓存的状态位达到八位,再将其组成一个字节,并保存在数据流中,操作结束。

    例如,在步骤203中读取第一指针指向第九位状态位1,在步骤204中判断出第一指针指向的第九位状态位1为最后一位,并在步骤208中判断出缓存的状态位未达到八位,则在本步骤中对缓存的状态位进行补零,使缓存的状态位达到八位分别为1、0、0、0、0、0、0和0,将其组成一个字节00000001,并将该字节保存在数据流中。如此,得到对该BitSet进行序列化后得到的数据流包括两个用于存储状态位的字节分别为00111001和00000001。

    在本发明实施例中,从BitSet中获取每位状态位,并将每次获取的八位状态位组成一个字节并存储在数据流中。由于字节是用于计量存储容量和传输容量的一种基本的计量单位,每一种编程语言都能识别字节,因而每种编程语言都能支持本实施例提供的序列化的方法,脱离了具体语言的限制,减少了对BitSet进行维护的成本。

    实施例3

    如图3所示,本发明实施例提供了一种对实施例1得到的数据流进行反序列化的方法,包括:

    步骤301:建立一个BitSet,从数据流中获取BitSet的长度,将该长度存储在建立的BitSet中;

    步骤302:将数据流中存储状态位的每个字节分别与八个状态码进行位与操作,恢复出每个字节包括的八位状态位;

    步骤303:将每个字节的八位状态位存储在建立的BitSet中。

    在本发明实施例中,将数据流中存储状态位的每个字节分别与八个状态码进行位与操作,恢复出每个字节包括八位状态位,并将每个字节包括的八位状态位存储在BitSet中。由于字节是用于计量存储容量和传输容量的一种基本的计量单位,每一种编程语言都能识别字节,因而每种编程语言都能支持本实施例提供的反序列化的方法。

    实施例4

    如图4所示,本发明实施例提供了一种对实施例2得到的数据流进行反序列化的方法,包括:

    步骤401:建立一个空白的BitSet,从数据流中获取BitSet的长度,并将获取的BitSet的长度存储在建立的BitSet中;

    例如,建立一个空白的BitSet,从数据流中获取BitSet的长度9,将获取的长度9存储在建立的空白的BitSet中。其中,由于通常将BitSet的长度存储在数据流中的前四个字节的空间内,因此,可以直接从数据流的前四个字节中读取BitSet的长度。

    步骤402:在数据流中设置第二指针指向第一个存储状态位的字节;

    例如,在数据流中设置第二指针指向第一个存储状态位的字节00111001。

    步骤403:从数据流中读取第二指针指向的字节,将读取的字节分别与八个状态码进行位与操作,恢复出该字节包括的八位状态位;

    其中,八个状态码分别为00000001、0000010、00000100、00001000、00010000、00100000、01000000和10000000。

    例如,从数据流中读取第二指针指向的第一个存储状态位的字节00111001,并将该字节分别与00000001、0000010、00000100、00001000、00010000、00100000、01000000和10000000做位与操作,得到该字节包括的八位状态位分别为1、0、0、1、1、1、0和0。

    步骤404:判断第二指针指向的字节是否为数据流中的最后一个字节,如果否,执行步骤405,如果是,执行步骤406;

    步骤405:将恢复的八位状态位存储在建立的BitSet中,在数据流中设置第二指针指向下一个字节,返回执行步骤403;

    例如,在步骤404中判断出第二指针未指向数据流中的最后一个字节,在本步骤中将在步骤403中恢复出的八位状态位1、0、0、1、1、1、0和0存储在建立的BitSet中,同时设置第二指针指向数据流中的下一个字节,即指向字节00000001,并从步骤403重新开始执行。另外,在步骤403中读取字节00000001,恢复出字节00000001中包括的八位状态位分别为1、0、0、0、0、0、0和0,且在步骤404中判断出第二指针指向最后一个字节,开始执行步骤406。

    步骤406:将获取的BitSet的长度与数字8做除法运算得到余数,判断余数的值是否为0,如果是,执行步骤407,如果否,执行步骤408;

    其中,如果余数为0,则在对BitSet进行序列化时没有进行补零操作,如果余数不为0,则在对BitSet进行序列化时进行补零操作,且在序列化时得到的最后一个字节的前余数位二进制数据由BitSet中的状态位组成。

    例如,从数据流中获取BitSet的长度9,并将9与8做除法运算得到余数1,则在序列化时得到的最后一个字节为00000001,该字节的前一位二进制数据1为BitSet中存储的状态位。

    步骤407:将从最后一个字节中恢复出的八位状态位存储在建立的BitSet中,操作结束;

    步骤408:在从最后一个字节中恢复出的八位状态位中,选取前余数位的状态位,并将选取的状态位存储在建立的BitSet中,操作结束。

    例如,由于计算出的余数为1,则在本步骤中判断出余数不为零,从恢复的八位状态位即1、0、0、0、0、0和0中,取前1位状态位1,并将状态位1存储在建立的BitSet中。

    在本发明实施例中,将数据流中存储状态位的每个字节分别与八个状态码进行位与操作,恢复出每个字节包括八位状态位,并将每个字节包括的八位状态位存储在BitSet中。由于字节是用于计量存储容量和传输容量的一种基本的计量单位,每一种编程语言都能识别字节,因而每种编程语言都能支持本实施例提供的反序列化的方法,从而脱离了具体编程语言的限制。

    实施例5

    如图5所示,本发明实施例提供了一种序列化的装置,包括:

    获取???01,用于从BitSet中获取其自身的长度,并将该长度存储在数据流中;

    组成???02,用于从BitSet中获取每位状态位,将每次获取的八位状态位组成字节并存储在数据流中。

    其中,组成???02具体包括:

    第一设置单元,用于设置第一指针指向BitSet存储的第一位状态位;

    第一读取单元,用于读取第一指针指向的状态位,缓存读取的状态位,并设置第一指针指向下一位状态位;

    组成单元,用于当缓存的状态位达到八位时,将缓存的状态位组成一个字节,并清空缓存的状态位;

    进一步地,该装置还包括:

    补零???,用于当获取到最后一位状态位且未组成字节的状态位不足八位时,对未组成字节的状态位补零得到八位状态位,将得到的八位状态位组成字节并存储在数据流中。

    在本发明实施例中,从BitSet中获取每位状态位,并将每次获取的八位状态位组成一个字节并存储在数据流中。由于字节是用于计量存储容量和传输容量的一种基本的计量单位,每一种编程语言都能识别字节,因而每种编程语言都能支持本实施例提供的序列化操作,从而脱离了具体编程语言的限制,减少了对BitSet进行维护的成本。

    实施例6

    如图6所示,本发明实施例提供了一种对实施例5得到的数据流进行反序列化的装置,包括:

    建立???01,用于建立一个BitSet,从数据流中获取BitSet的长度,将该长度存储在建立的BitSet中;

    恢复???02,用于将数据流中的每个存储状态位的字节分别与八个状态码进行位与操作,恢复出每个存储状态位的字节包括的八位状态位;

    存储???03,用于将每个字节的八位状态位存储在建立的BitSet中。

    其中,恢复???02具体包括:

    第二设置单元,用于设置第二指针指向数据流中的第一个存储状态位的字节;

    第二读取单元,用于读取第二指针指向的字节,设置第二指针指向下一个字节;

    位与操作单元,用于将读取的字节分别与八个状态码进行位与操作,恢复出读取的字节包括的八位状态位;

    进一步地,该装置还包括:

    选取???,用于将该长度与数字八进行除法运算得到余数,当余数不为零时,在数据流中的最后一个字节存储的八位状态位中,选取前余数位的状态位,将选取的状态位存储在建立的BitSet中。

    其中,八个状态码分别为00000001、0000010、00000100、00001000、00010000、00100000、01000000和10000000。

    在本发明实施例中,将数据流中存储状态位的每个字节分别与八个状态码进行位与操作,恢复出每个字节包括八位状态位,并将每个字节包括的八位状态位存储在BitSet中。由于字节是用于计量存储容量和传输容量的一种基本的计量单位,每一种编程语言都能识别字节,因而每种编程语言都能支持本实施例提供的反序列化操作,从而脱离了具体编程语言的限制。

    实施例7

    如图7所示,本发明实施例提供了一种序列化和反序列化的系统,该系统包括序列化的装置701和反序列化的装置702;

    序列化的装置701,用于从BitSet中获取其自身的长度,并将该长度存储在数据流中;从BitSet中获取每位状态位,将每次获取的八位状态位组成字节并存储在数据流中;

    反序列化的装置702,用于建立一个BitSet,从数据流中获取BitSet的长度,将长度存储在建立的BitSet中;将数据流中的每个存储状态位的字节分别与八个状态码进行位与操作,恢复出每个存储状态位的字节包括的八位状态位;将每个字节的八位状态位存储在建立的BitSet中。

    在本发明实施例中,当对BitSet进行序列化时,从BitSet中获取每位状态位,并将每次获取的八位状态位组成一个字节并存储在数据流中;当进行反序列化时,将数据流中存储状态位的每个字节分别与八个状态码进行位与操作,恢复出每个字节包括八位状态位,并将每个字节包括的八位状态位存储在BitSet中。由于字节是用于计量存储容量和传输容量的一种基本的计量单位,每一种编程语言都能识别字节,因而每种编程语言都能支持本实施例提供的序列化和反序列化的操作,从而脱离了具体编程语言的限制。

    以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。

    以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的?;し段е?。

    关于本文
    本文标题:一种序列化和反序列化的方法、装置及系统.pdf
    链接地址://www.4mum.com.cn/p-5865138.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 七星彩下载七星彩app 3d组选复式投注技巧 北京pk10玩法技巧攻略 澳洲赛车官方网站 上海时时预测软件下载 双色球前面中2个有奖吗 七乐彩综合走势图表图 时时彩跨度选胆码稳赚技巧 专业版 四川时时app下载手机版下载手机版下载 118宝马平码论坛 长龙只跟不反不倍投 龙胜埃及分分彩计划 赌场网玩法规则 彩票娱乐手机投注 六肖稳赚计划