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

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

Info

Publication number
CN102193787A
CN102193787A CN201010122965XA CN201010122965A CN102193787A CN 102193787 A CN102193787 A CN 102193787A CN 201010122965X A CN201010122965X A CN 201010122965XA CN 201010122965 A CN201010122965 A CN 201010122965A CN 102193787 A CN102193787 A CN 102193787A
Authority
CN
China
Prior art keywords
byte
bitset
data stream
mode
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201010122965XA
Other languages
English (en)
Other versions
CN102193787B (zh
Inventor
林育智
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Kingdee Tianyanyun Computing Co Ltd
Original Assignee
Shenzhen Kingdee Middleware Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Kingdee Middleware Co ltd filed Critical Shenzhen Kingdee Middleware Co ltd
Priority to CN201010122965.XA priority Critical patent/CN102193787B/zh
Publication of CN102193787A publication Critical patent/CN102193787A/zh
Application granted granted Critical
Publication of CN102193787B publication Critical patent/CN102193787B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

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

Description

一种序列化和反序列化的方法、装置及系统
技术领域
本发明涉及计算机领域,特别涉及一种序列化和反序列化的方法、装置及系统。
背景技术
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所示,本发明实施例提供了一种序列化的装置,包括:
获取模块501,用于从BitSet中获取其自身的长度,并将该长度存储在数据流中;
组成模块502,用于从BitSet中获取每位状态位,将每次获取的八位状态位组成字节并存储在数据流中。
其中,组成模块502具体包括:
第一设置单元,用于设置第一指针指向BitSet存储的第一位状态位;
第一读取单元,用于读取第一指针指向的状态位,缓存读取的状态位,并设置第一指针指向下一位状态位;
组成单元,用于当缓存的状态位达到八位时,将缓存的状态位组成一个字节,并清空缓存的状态位;
进一步地,该装置还包括:
补零模块,用于当获取到最后一位状态位且未组成字节的状态位不足八位时,对未组成字节的状态位补零得到八位状态位,将得到的八位状态位组成字节并存储在数据流中。
在本发明实施例中,从BitSet中获取每位状态位,并将每次获取的八位状态位组成一个字节并存储在数据流中。由于字节是用于计量存储容量和传输容量的一种基本的计量单位,每一种编程语言都能识别字节,因而每种编程语言都能支持本实施例提供的序列化操作,从而脱离了具体编程语言的限制,减少了对BitSet进行维护的成本。
实施例6
如图6所示,本发明实施例提供了一种对实施例5得到的数据流进行反序列化的装置,包括:
建立模块601,用于建立一个BitSet,从数据流中获取BitSet的长度,将该长度存储在建立的BitSet中;
恢复模块602,用于将数据流中的每个存储状态位的字节分别与八个状态码进行位与操作,恢复出每个存储状态位的字节包括的八位状态位;
存储模块603,用于将每个字节的八位状态位存储在建立的BitSet中。
其中,恢复模块602具体包括:
第二设置单元,用于设置第二指针指向数据流中的第一个存储状态位的字节;
第二读取单元,用于读取第二指针指向的字节,设置第二指针指向下一个字节;
位与操作单元,用于将读取的字节分别与八个状态码进行位与操作,恢复出读取的字节包括的八位状态位;
进一步地,该装置还包括:
选取模块,用于将该长度与数字八进行除法运算得到余数,当余数不为零时,在数据流中的最后一个字节存储的八位状态位中,选取前余数位的状态位,将选取的状态位存储在建立的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中。由于字节是用于计量存储容量和传输容量的一种基本的计量单位,每一种编程语言都能识别字节,因而每种编程语言都能支持本实施例提供的序列化和反序列化的操作,从而脱离了具体编程语言的限制。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (15)

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所述的装置,其特征在于,所述组成模块具体包括:
第一设置单元,用于设置第一指针指向所述BitSet存储的第一位状态位;
第一读取单元,用于读取所述第一指针指向的状态位,缓存所述读取的状态位,并设置所述第一指针指向下一位状态位;
组成单元,用于当所述缓存的状态位达到八位时,将所述缓存的状态位组成一个字节,并清空所述缓存的状态位。
10.如权利要求8或9所述的装置,其特征在于,所述装置还包括:
补零模块,用于当获取到最后一位状态位且未组成字节的状态位不足八位时,对所述未组成字节的状态位补零得到八位状态位,将所述八位状态位组成字节并存储在所述数据流中。
11.一种对权利要求8得到的数据流进行反序列化的装置,其特征在于,所述装置包括:
建立模块,用于建立一个BitSet,从数据流中获取BitSet的长度,将所述长度存储在所述建立的BitSet中;
恢复模块,用于将所述数据流中的每个存储状态位的字节分别与八个状态码进行位与操作,恢复出所述每个字节包括的八位状态位;
存储模块,用于将所述每个字节的八位状态位存储在所述建立的BitSet中。
12.如权利要求11所述的装置,其特征在于,所述恢复模块具体包括:
第二设置单元,用于设置第二指针指向所述数据流中的第一个存储状态位的字节;
第二读取单元,用于读取所述第二指针指向的字节,设置所述第二指针指向下一个字节;
位与操作单元,用于将所述字节分别与所述八个状态码进行位与操作,恢复出所述字节包括的八位状态位。
13.如权利要求11所述的装置,其特征在于,所述装置还包括:
选取模块,用于将所述长度与数字八进行除法运算得到余数,当所述余数不为零时,在所述数据流中的最后一个字节存储的八位状态位中,选取前余数位的状态位,将所述选取的状态位存储在所述建立的BitSet中。
14.如权利要求11-13任意一项权利要求所述的装置,其特征在于,所述八个状态码分别为00000001、0000010、00000100、00001000、00010000、00100000、01000000和10000000。
15.一种序列化和反序列化的系统,其特征在于,所述系统包括序列化的装置和反序列化的装置;
所述序列化的装置,用于从BitSet中获取其自身的长度,并将所述长度存储在数据流中;从所述BitSet中获取每位状态位,将每次获取的八位状态位组成字节并存储在所述数据流中;
所述反序列化的装置,用于建立一个BitSet,从所述数据流中获取BitSet的长度,将所述长度存储在所述建立的BitSet中;将所述数据流中的每个存储状态位的字节分别与八位状态码进行位与操作,恢复出所述每个存储状态位的字节包括的八位状态位;将所述每个字节的八位状态位存储在所述建立的BitSet中。
CN201010122965.XA 2010-03-01 2010-03-01 一种序列化和反序列化的方法、装置及系统 Active CN102193787B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010122965.XA CN102193787B (zh) 2010-03-01 2010-03-01 一种序列化和反序列化的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010122965.XA CN102193787B (zh) 2010-03-01 2010-03-01 一种序列化和反序列化的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN102193787A true CN102193787A (zh) 2011-09-21
CN102193787B CN102193787B (zh) 2014-12-17

Family

ID=44601909

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010122965.XA Active CN102193787B (zh) 2010-03-01 2010-03-01 一种序列化和反序列化的方法、装置及系统

Country Status (1)

Country Link
CN (1) CN102193787B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981841A (zh) * 2011-11-08 2013-03-20 微软公司 外部序列化和去序列化
CN103685538A (zh) * 2013-12-20 2014-03-26 中电长城网际系统应用有限公司 一种分布式网络架构
WO2016029788A1 (zh) * 2014-08-29 2016-03-03 优视科技有限公司 序列化方法和装置、以及反序列化方法和装置
CN106548486A (zh) * 2016-11-01 2017-03-29 浙江大学 一种基于稀疏视觉特征地图的无人车位置跟踪方法
CN112948129A (zh) * 2021-03-30 2021-06-11 深圳致星科技有限公司 基于联邦学习的数据传输优化方法、设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101221522A (zh) * 2007-01-11 2008-07-16 中兴通讯股份有限公司 一种容灾备份系统中数据同步的方法
CN101561780A (zh) * 2008-04-18 2009-10-21 北京闻言科技有限公司 一种使用文件来存储应用程序状态的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101221522A (zh) * 2007-01-11 2008-07-16 中兴通讯股份有限公司 一种容灾备份系统中数据同步的方法
CN101561780A (zh) * 2008-04-18 2009-10-21 北京闻言科技有限公司 一种使用文件来存储应用程序状态的方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981841A (zh) * 2011-11-08 2013-03-20 微软公司 外部序列化和去序列化
CN103685538A (zh) * 2013-12-20 2014-03-26 中电长城网际系统应用有限公司 一种分布式网络架构
WO2016029788A1 (zh) * 2014-08-29 2016-03-03 优视科技有限公司 序列化方法和装置、以及反序列化方法和装置
CN105446722A (zh) * 2014-08-29 2016-03-30 优视科技有限公司 序列化方法和装置、以及反序列化方法和装置
CN105446722B (zh) * 2014-08-29 2019-04-02 优视科技有限公司 序列化方法和装置、以及反序列化方法和装置
CN106548486A (zh) * 2016-11-01 2017-03-29 浙江大学 一种基于稀疏视觉特征地图的无人车位置跟踪方法
CN106548486B (zh) * 2016-11-01 2024-02-27 浙江大学 一种基于稀疏视觉特征地图的无人车位置跟踪方法
CN112948129A (zh) * 2021-03-30 2021-06-11 深圳致星科技有限公司 基于联邦学习的数据传输优化方法、设备及可读存储介质

Also Published As

Publication number Publication date
CN102193787B (zh) 2014-12-17

Similar Documents

Publication Publication Date Title
CN102866971B (zh) 传输数据的装置、系统及方法
CN102193787B (zh) 一种序列化和反序列化的方法、装置及系统
CN103176924B (zh) 输出设备以及输出设备的日志信息收集方法
CN102230374A (zh) 一种基于485总线的井下程序远程更新装置
CN102567146A (zh) 一种实现日志备份的方法及其装置、智能卡
CN102023882A (zh) 计算机自动识别手机并安装手机驱动程序的系统及方法
CN112506910A (zh) 多源数据采集方法、装置、电子设备及存储介质
CN101546279A (zh) 嵌入式设备的异常处理装置、系统和方法
US20240020246A1 (en) Method for Generating Information Based on FIFO Memory and Apparatus, Device and Medium
CN106354746B (zh) 搜索方法和搜索设备
CN104991263A (zh) 进行卫星定位信号解析的方法
CN110209605A (zh) Pcie总线网卡的寄存器读写方法和计算设备
JP2017111807A (ja) 通信メカニズムを含むコンピューティングシステム及びその動作方法
CN103458037A (zh) 一种在资源受限环境下提供复杂网页应用的方法和设备
CN113742282A (zh) 一种基于fpga的sata ip核及数据存储方法
CN113282854A (zh) 数据请求响应方法、装置、电子设备及存储介质
CN102722456A (zh) 闪存存储设备的数据写入方法和闪存存储设备
CN102270223A (zh) 消息解码库的生成方法、装置及消息解码方法、装置
CN115080563A (zh) 数据捕获方法、装置、系统、电子设备及存储介质
CN107544894A (zh) 一种日志处理的方法、装置及服务器
EP2063359A2 (en) Log recording apparatus
CN110247666B (zh) 一种硬件并行压缩的系统及方法
CN114598731A (zh) 集群日志采集方法、装置、设备及存储介质
CN110601963B (zh) 消息处理方法以及支持该消息处理方法的电子设备
KR101668441B1 (ko) 이기종 장치의 데이터 수집을 위한 미들웨어 간 인터페이스 장치 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: South South technology twelve road 518057 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Patentee after: Shenzhen Kingdee middleware Limited by Share Ltd.

Address before: 518057 Guangdong City, Nanshan District province high tech Zone in the middle of the industrial zone of the sparrow tower M-6 building, floor 1, area 3, second, 4

Patentee before: Shenzhen Kingdee Middleware Co., Ltd.

CP01 Change in the name or title of a patent holder

Address after: South South technology twelve road 518057 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Patentee after: Shenzhen Kingdee tianyanyun computing Co., Ltd.

Address before: South South technology twelve road 518057 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Patentee before: Shenzhen Kingdee middleware Limited by Share Ltd.

CP01 Change in the name or title of a patent holder