CN101826109B - 一种大容量文件分割方法、装置及系统 - Google Patents
一种大容量文件分割方法、装置及系统 Download PDFInfo
- Publication number
- CN101826109B CN101826109B CN2010101461789A CN201010146178A CN101826109B CN 101826109 B CN101826109 B CN 101826109B CN 2010101461789 A CN2010101461789 A CN 2010101461789A CN 201010146178 A CN201010146178 A CN 201010146178A CN 101826109 B CN101826109 B CN 101826109B
- Authority
- CN
- China
- Prior art keywords
- file
- data
- son file
- son
- cutting apart
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明适用于计算机软件领域,提供了一种大容量文件分割方法、装置及系统,所述方法包括下述步骤:根据存储器的容量和被分割文件中单条数据的大小,获取分割后单个子文件包含的数据的数量;根据被分割文件包含的数据的总量,和分割后单个子文件包含的数据的数量,获取分割后的子文件数量;获取读、写文件两个通道,根据分割后单个子文件包含的数据的数量分配动态数组的大小,循环分批读写数据,分割被分割文件。本发明运用读、写文件双通道和动态数组循环分批读写数据的方式,对大容量二进制文件进行精确分割,程序分割速度快、性能稳定且避免了因内存耗尽而操作失败的问题,分割后的子文件可直接烧写到存储器中,结合单片机进行数据的分解应用。
Description
技术领域
本发明属于计算机软件领域,尤其涉及一种大容量文件分割方法、装置及系统。
背景技术
目前,光盘、U盘、移动硬盘等大容量存储设备已经被广泛应用,常用于大容量文件的存储和运输,但是由于其通讯协议复杂、价格昂贵、烧写速度相对慢等,在实际应用中很少,且较难直接使用这些大容量存储设备作为文件数据分解应用的载体,而是采用小容量的存储器作为可移动和重复使用的载体,结合单片机对文件数据进行分解应用。例如在彩色电视机生产行业,需要在每台电视机产品中烧录一个不同的HDCP KEY数据,该数据是以订单数量为单位的二进制文件,由于该二进制文件数据量较大(容量为M级),而存储器数据存储量较小,如容量较大的海量存储器W27E040的容量仅为K级,512K,因此必须对文件分割成的独立小文件,以实现数据的分解应用。
当前有许多基于操作系统的文件分割工具可实现文件分割,如运行于Windows系统的WinRAR软件、FileSplit软件,其分割原理是对文件进行简单的切割,功能主要面向数据的拆分存储和传输,这些软件分割后的文件一般需重新组合方能使用,不能直接烧录到存储器,以结合单片机实现数据的分解应用。
另外,还有的文件分割方法是将大容量文件一次性读入内存,然后在内存中对文件数据进行分割处理。当文件容量较大时,这种方式一方面占用了大量的系统资源开销,另一方面应用程序会常遇到因内存耗尽而操作失败的不稳定性问题,尽管文件分割的功能实现了,但是应用程序本身的稳定性并不理想。
发明内容
本发明实施例的目的在于提供一种大容量文件分割方法,旨在解决现有将大容量文件一次性读入内存进行分割处理时存在系统资源开销占用较大,稳定性差的问题。
本发明实施例是这样实现的,一种大容量文件分割方法,所述方法包括下述步骤:
根据存储器的容量和被分割文件中单条数据的大小,获取分割后单个子文件包含的数据的数量;
根据被分割文件包含的数据的总量,和分割后单个子文件包含的数据的数量,获取分割后的子文件数量;
获取空闲的读数据通道,根据分割后单个子文件包含的数据的数量分配动态数组的大小,读取数据到所述动态数组后,关闭所述读数据通道;
获取分割后的子文件名,获取空闲的写数据通道,将所述动态数组中的数据写入所述子文件名对应的子文件后,关闭写数据通道;
循环分批读写数据,直到被分割文件分割完毕。
本发明实施例的另一目的在于提供一种大容量文件分割烧录方法,所述方法包括下述步骤:
根据存储器的容量和被分割文件中单条数据的大小,获取分割后单个子文件包含的数据的数量;
根据被分割文件包含的数据的总量,和分割后单个子文件包含的数据的数量,获取分割后的子文件数量;
获取空闲的读数据通道,根据分割后单个子文件包含的数据的数量分配动态数组的大小,读取数据到所述动态数组后,关闭所述读数据通道;
获取分割后的子文件名,获取空闲的写数据通道,将所述动态数组中的数据写入所述子文件名对应的子文件后,关闭写数据通道;
循环分批读写数据,直到被分割文件分割完毕;
将分割后的子文件分别烧录到存储器。
本发明实施例的另一目的在于提供一种大容量文件分割装置,所述装置包括:
子文件数据量计算单元,用于根据存储器的容量和被分割文件中单条数据的大小,获取分割后单个子文件包含的数据的数量;
子文件数量计算单元,用于根据被分割文件包含的数据的总量,和分割后单个子文件包含的数据的数量,获取分割后的子文件数量;
空闲通道获取单元,用于获取读、写文件两个空闲通道;
动态数组分配单元,用于根据分割后单个子文件包含的数据的数量分配动态数组的大小;以及
分割控制单元,用于根据所述读文件空闲通道,以及动态数组的大小,读取数据到所述动态数组,获取分割后的子文件名,根据所述写文件空闲通道,将所述动态数组中的数据写入所述子文件名对应的子文件,循环分批读写数据,分割被分割文件。
本发明实施例的另一目的在于提供一种包含上述大容量文件分割装置的系统。
本发明实施例的另一目的在于提供一种大容量文件分割烧录装置,所述装置包括:
子文件数据量计算单元,用于根据存储器的容量和被分割文件中单条数据的大小,获取分割后单个子文件包含的数据的数量;
子文件数量计算单元,用于根据被分割文件包含的数据的总量,和分割后单个子文件包含的数据的数量,获取分割后的子文件数量;
空闲通道获取单元,用于获取读、写文件两个空闲通道;
动态数组分配单元,用于根据分割后单个子文件包含的数据的数量分配动态数组的大小;
分割控制单元,用于根据所述读文件空闲通道,以及动态数组的大小,读取数据到所述动态数组,获取分割后的子文件名,根据所述写文件空闲通道,将所述动态数组中的数据写入所述子文件名对应的子文件,循环分批读写数据,分割被分割文件;以及
数据烧录单元,用于将分割后的子文件分别烧录到存储器。
本发明实施例的另一目的在于提供一种包含上述大容量文件分割烧录装置的系统。
本发明实施例运用读、写文件双通道和动态数组循环分批读写数据的方式,对大容量二进制文件进行精确分割,程序分割速度快、性能稳定且避免了因内存耗尽而操作失败的问题,分割后的子文件为信息完整的独立文件,可直接烧写到存储器中,结合单片机进行数据的分解应用。
附图说明
图1是本发明实施例提供的大容量文件分割方法的实现流程图;
图2是本发明实施例提供的对被分割文件进行分割的具体实现流程图;
图3是本发明实施例提供的大容量文件分割装置的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过读、写文件双通道和动态数组循环分批读写数据的方式分割文件,分割后的子文件为信息完整的独立文件,可直接烧写到存储器中,且可以结合单片机实现数据的分解应用。
当被分割的文件较大或者非常大,如远远大于内存时,如果使用单个文件通道定义的内存二进制缓冲数组非常容易造成内存的用尽而导致操作失败,另一方面,它的处理速度和可靠性也不理想。在本发明实施例中,分别使用读、写2个通道,结合动态数组循环分批读写数据,即在读文件时使用一个通道将数据读入动态数组,在写文件时使用另一个通道将动态数组的数据存入文件。
在分割文件的循环中,首先从被分割文件中读取指定分割大小的一段数据到动态数组,再将动态数组的数据写入第一个子文件中;分割下一个子文件时,重定义动态数组,从被分割文件中读取另一段的数据,再写入到另一个子文件中。循环直到读出文件最后一段数据,写入到最后一个子文件中。
图1示出了本发明实施例提供的大容量文件分割方法的实现流程,详述如下:
在步骤S101中,根据存储器的容量和被分割文件中单条数据的大小,获取分割后单个子文件包含的数据的数量;
在步骤S102中,根据被分割文件包含的数据的总量,和分割后单个子文件包含的数据的数量,获取分割后的子文件数量;
在步骤S103中,获取读、写文件两个通道,根据分割后单个子文件包含的数据的数量分配动态数组的大小,循环分批读写数据,分割被分割文件。
图2示出了本发明实施例提供的对被分割文件进行分割的具体实现流程,详述如下:
在步骤S201中,获取第一空闲通道,读取被分割文件;
在步骤S202中,进入分割循环,判断当前文件是不是最后一个分割后的子文件,是则执行步骤S209,否则执行步骤S203;
在步骤S203中,根据分割后单个子文件包含的数据的数量分配动态数组的大小;
在步骤S204中,读取数据到动态数组;
在步骤S205中,关闭读数据通道;
在步骤S206中,获取分割后的子文件名;
在步骤S207中,获取第二空闲通道,将动态数组中的数据写入子文件名对应的子文件;
在步骤S208中,关闭写数据通道;
在步骤S209中,根据最后一个子文件包含的数据的数量重新分配动态数组的大小,并执行步骤S204。
上述流程的具体代码实现示例如下:
在本发明实施例中,可以将分割出来的子文件分别烧录到存储器中,实现数据的分解应用。
图3示出了本发明实施例提供的大容量文件分割装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该装置可以用于各种大容量文件分割设备,例如计算机等,可以是运行于计算机内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到计算机中或者运行于计算机的应用系统中,其中:
子文件数据量计算单元31根据存储器的容量和被分割文件中单条数据的大小,获取分割后单个子文件包含的数据的数量。
子文件数量计算单元32根据被分割文件包含的数据的总量,和分割后单个子文件包含的数据的数量,获取分割后的子文件数量;
空闲通道获取单元33获取读、写文件两个空闲通道;
动态数组分配单元34根据分割后单个子文件包含的数据的数量分配动态数组的大小;
分割控制单元35根据读、写文件两个空闲通道,以及动态数组的大小,循环分批读写数据,分割被分割文件。
作为本发明的一个实施例,该大容量文件分割装置可以集成到大容量文件分割烧录装置中,该大容量文件分割烧录装置可以用于各种大容量文件分割烧录设备,例如计算机等,可以是运行于计算机内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到计算机中或者运行于计算机的应用系统中。
数据烧录单元36将分割后的子文件分别烧录到存储器。
作为本发明实施例的一个具体应用,在彩色电视机生产领域,需在线烧写HDCP KEY码数据到每台电视机中,通过本发明实施例将含任意订单数量KEY码的二进制文件,选择一定的制作方式分割成若干个子文件,并将子文件烧写到存储器,例如W27E040中,结合单片机进行KEY码数据的分解应用。其具体实现方式为:
(1)输入文件分割相关信息
在应用程序的操作界面中选择本次文件分割的制作方案,填写订单号、订单数量、机芯、起始条码号、MAC地址起始号,并点击“打开已编码的KEY文件”按钮,选择被分割的二进制文件“10000(500000-509999).bin”。其中制作方案决定了本次分割的数据格式,条码号、MAC地址码为叠加信息捆绑到每个KEY码中,订单号、机芯为子分割文件的公共信息;
(2)文件分割
点击“开始制作”按钮,程序会根据输入的信息及制作方案自动分割“10000(500000-509999).bin”,分割后的子文件存放在桌面以订单名命名的文件夹中,子文件的命名方式为“机芯号+数字序列”,例如8M791。文件夹内包含一个“说明”文件,记载本次分割的详细信息。
(3)数据烧写及分解应用
使用编程器将分割出来的子文件分别烧录到存储器,例如并行存储器中,再将已烧录数据的存储器接入到烧录设备,在生产时将数据分解烧录到每台电视机产品中。
本发明实施例运用读、写文件双通道和动态数组循环分批读写数据的方式,对大容量二进制文件进行精确分割,分割速度快、性能稳定且避免了因内存耗尽而操作失败的问题,分割后的子文件为信息完整的独立文件,可直接烧写到存储器中,结合单片机进行数据的分解应用。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种大容量文件分割方法,其特征在于,所述方法包括下述步骤:
根据存储器的容量和被分割文件中单条数据的大小,获取分割后单个子文件包含的数据的数量;
根据被分割文件包含的数据的总量,和分割后单个子文件包含的数据的数量,获取分割后的子文件数量;
获取空闲的读数据通道,根据分割后单个子文件包含的数据的数量分配动态数组的大小,读取数据到所述动态数组后,关闭所述读数据通道;
获取分割后的子文件名,获取空闲的写数据通道,将所述动态数组中的数据写入所述子文件名对应的子文件后,关闭写数据通道;
循环分批读写数据,直到被分割文件分割完毕。
2.如权利要求1所述的方法,其特征在于,所述方法进一步包括下述步骤:
将分割后的子文件分别烧录到存储器。
3.一种大容量文件分割烧录方法,其特征在于,所述方法包括下述步骤:
根据存储器的容量和被分割文件中单条数据的大小,获取分割后单个子文件包含的数据的数量;
根据被分割文件包含的数据的总量,和分割后单个子文件包含的数据的数量,获取分割后的子文件数量;
获取空闲的读数据通道,根据分割后单个子文件包含的数据的数量分配动态数组的大小,读取数据到所述动态数组后,关闭所述读数据通道;
获取分割后的子文件名,获取空闲的写数据通道,将所述动态数组中的数据写入所述子文件名对应的子文件后,关闭写数据通道;
循环分批读写数据,直到被分割文件分割完毕;
将分割后的子文件分别烧录到存储器。
4.一种大容量文件分割装置,其特征在于,所述装置包括:
子文件数据量计算单元,用于根据存储器的容量和被分割文件中单条数据的大小,获取分割后单个子文件包含的数据的数量;
子文件数量计算单元,用于根据被分割文件包含的数据的总量,和分割后单个子文件包含的数据的数量,获取分割后的子文件数量;
空闲通道获取单元,用于获取读、写文件两个空闲通道;
动态数组分配单元,用于根据分割后单个子文件包含的数据的数量分配动态数组的大小;以及
分割控制单元,用于根据所述读文件空闲通道,以及动态数组的大小,读取数据到所述动态数组,获取分割后的子文件名,根据所述写文件空闲通道,将所述动态数组中的数据写入所述子文件名对应的子文件,循环分批读写数据,分割被分割文件。
5.如权利要求4所述的装置,其特征在于,所述装置还包括:
数据烧录单元,用于将分割后的子文件分别烧录到存储器。
6.一种包含权利要求4的大容量文件分割装置的系统。
7.一种大容量文件分割烧录装置,其特征在于,所述装置包括:
子文件数据量计算单元,用于根据存储器的容量和被分割文件中单条数据的大小,获取分割后单个子文件包含的数据的数量;
子文件数量计算单元,用于根据被分割文件包含的数据的总量,和分割后单个子文件包含的数据的数量,获取分割后的子文件数量;
空闲通道获取单元,用于获取读、写文件两个空闲通道;
动态数组分配单元,用于根据分割后单个子文件包含的数据的数量分配动态数组的大小;
分割控制单元,用于根据所述读文件空闲通道,以及动态数组的大小,读取数据到所述动态数组,获取分割后的子文件名,根据所述写文件空闲通道,将所述动态数组中的数据写入所述子文件名对应的子文件,循环分批读写数据,分割被分割文件;以及
数据烧录单元,用于将分割后的子文件分别烧录到存储器。
8.一种包含权利要求7的大容量文件分割烧录装置的系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101461789A CN101826109B (zh) | 2010-04-07 | 2010-04-07 | 一种大容量文件分割方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101461789A CN101826109B (zh) | 2010-04-07 | 2010-04-07 | 一种大容量文件分割方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101826109A CN101826109A (zh) | 2010-09-08 |
CN101826109B true CN101826109B (zh) | 2011-11-23 |
Family
ID=42690029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101461789A Expired - Fee Related CN101826109B (zh) | 2010-04-07 | 2010-04-07 | 一种大容量文件分割方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101826109B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102867002A (zh) * | 2011-07-05 | 2013-01-09 | 北大方正集团有限公司 | 电子文件的处理方法和装置 |
CN103049540A (zh) * | 2012-12-26 | 2013-04-17 | 深圳瑞高信息技术有限公司 | 一种大文件烧录的方法及相关装置 |
CN103685552B (zh) * | 2013-12-25 | 2017-11-07 | 烽火通信科技股份有限公司 | 一种小内存设备的软件升级方法 |
CN105653554B (zh) * | 2014-11-14 | 2019-07-16 | 卓望数码技术(深圳)有限公司 | 一种文件数据比对方法和系统 |
CN107169313A (zh) * | 2017-03-29 | 2017-09-15 | 中国科学院深圳先进技术研究院 | Dna数据文件的读取方法及计算机可读存储介质 |
CN107888978B (zh) * | 2017-10-26 | 2020-08-28 | 深圳创维-Rgb电子有限公司 | Key码烧录方法、装置及计算机可读存储介质 |
CN107908737B (zh) * | 2017-11-15 | 2022-08-19 | 中国银行股份有限公司 | 文件拆分控制方法和装置 |
CN109949054B (zh) * | 2019-03-18 | 2024-03-19 | 深圳创维-Rgb电子有限公司 | Key码确定方法、装置、设备及存储介质 |
CN110597767B (zh) * | 2019-08-08 | 2022-05-10 | 北京盛赞科技有限公司 | 一种数据分割方法、装置、设备及计算机可读存储介质 |
CN114490693A (zh) * | 2022-02-17 | 2022-05-13 | 平安普惠企业管理有限公司 | 数据修改方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1937745A (zh) * | 2006-10-19 | 2007-03-28 | 深圳创维-Rgb电子有限公司 | 一种hdmi接口机hdcp码的烧写方法和装置 |
CN101425096A (zh) * | 2008-11-27 | 2009-05-06 | 四川长虹电器股份有限公司 | 嵌入式设备的文件存储方法 |
-
2010
- 2010-04-07 CN CN2010101461789A patent/CN101826109B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1937745A (zh) * | 2006-10-19 | 2007-03-28 | 深圳创维-Rgb电子有限公司 | 一种hdmi接口机hdcp码的烧写方法和装置 |
CN101425096A (zh) * | 2008-11-27 | 2009-05-06 | 四川长虹电器股份有限公司 | 嵌入式设备的文件存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101826109A (zh) | 2010-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101826109B (zh) | 一种大容量文件分割方法、装置及系统 | |
US10048865B2 (en) | Disk partition stitching and rebalancing using a partition table | |
EP2352258B1 (en) | Storage method and apparatus | |
WO2017096940A1 (zh) | 一种基于spark-SQL大数据处理平台的数据导入方法 | |
CN103164490B (zh) | 一种不固定长度数据的高效存储实现方法和装置 | |
CN103077183A (zh) | 一种分布式顺序表的数据导入方法及其系统 | |
CN102508880A (zh) | 一种文件合并方法及分解方法 | |
CN101983376A (zh) | 访问装置、信息记录装置、信息记录系统、文件管理方法和程序 | |
CN103902467A (zh) | 压缩内存访问控制方法、装置及系统 | |
CN114138193B (zh) | 一种分区命名空间固态硬盘的数据写入方法、装置及设备 | |
WO2014110940A1 (en) | A method, apparatus and system for storing, reading the directory index | |
CN106547644A (zh) | 增量备份方法和设备 | |
JP2023509233A (ja) | 文書内テーブル閲覧方法、装置、電子機器及び記憶媒体 | |
CN103902589A (zh) | 一种下载文件的管理方法及装置 | |
CN103246549A (zh) | 一种数据转存的方法及系统 | |
CN102779138A (zh) | 实时数据的硬盘存取方法 | |
CN103488502A (zh) | 一种数据加载方法及装置 | |
US11287996B2 (en) | Method, device and computer program product for storing data | |
CN1687899A (zh) | 将应用程序动态下载到用户识别模块的方法、系统及模块 | |
CN103744952A (zh) | NoSQL数据库多表特性的实现方法及系统 | |
CN104951528A (zh) | 一种数据迁移的方法及终端 | |
WO2023249753A1 (en) | File system metadata layout for append-only storage | |
US10146791B2 (en) | Open file rebalance | |
CN103617177A (zh) | 一种堆叠式重复数据删除文件系统 | |
CN111339030B (zh) | 一种基于fpga的云文件系统及其数据处理方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111123 Termination date: 20200407 |