一种基于缓冲对齐的文件读写方法及系统技术方案

技术编号:14504717 阅读:72 留言:0更新日期:2017-01-31 13:10
本发明专利技术公开了一种基于缓冲对齐的文件读写方法,包括:若存在程序读写请求,则判断内部缓存区是否包含待读取数据,若包含,则直接返回待读取数据,否则根据文件的预设单位对齐后,计算需要读取的位置和大小,所述大小为预设单位的整数倍;基于所述需要读取的位置和大小,调用系统API读取数据并缓存至内部缓存区;根据实际需要返回待读取数据。本发明专利技术还公开了一种基于缓冲对齐的文件读写系统。本发明专利技术所述技术方案可以有效减少调用系统API的次数和时间,提高了文件读写性能。

【技术实现步骤摘要】

本专利技术涉及网络信息安全领域,尤其涉及一种基于缓冲对齐的文件读写方法及系统
技术介绍
传统文件读写方法通常调用系统API(应用程序编程接口)对磁盘进行操作,获取文件指定位置和大小的数据。传统文件读写方法在某些应用场景中会出现一些弊端。例如,在需要频繁碎片读写文件时,应用系统会频繁调用系统API获取数据,增加了调用系统API的次数和耗费的时间,降低了文件读写性能。
技术实现思路
本专利技术提供了一种基于缓冲对齐的文件读写方法及系统,通过在程序内部实现内部缓存区,在调用系统API获取数据之前,判断内部缓存区是否存在待读取数据,若存在,则直接返回,避免频繁调用系统API,从而过多耗费时间的问题。本专利技术采用如下方法来实现:一种基于缓冲对齐的文件读写方法,包括:若存在程序读写请求,则判断内部缓存区是否包含待读取数据,若包含,则直接返回待读取数据,否则根据文件的预设单位对齐后,计算需要读取的位置和大小,所述大小为预设单位的整数倍;基于所述需要读取的位置和大小,调用系统API读取数据并缓存至内部缓存区;根据实际需要返回待读取数据。进一步地,所述预设单位根据需要设定,包括:文件簇或者扇区。本专利技术采用如下系统来实现:一种基于缓冲对齐的文件读写系统,包括:判断模块,用于当存在程序读写请求时,则判断内部缓存区是否包含待读取数据,若包含,则由返回模块继续执行,否则由计算模块继续执行;计算模块,用于根据文件的预设单位对齐后,计算需要读取的位置和大小,所述大小为预设单位的整数倍;读取模块,用于基于所述需要读取的位置和大小,调用系统API读取数据并缓存至内部缓存区;返回模块,用于根据实际需要返回待读取数据。进一步地,所述预设单位根据需要设定,包括:文件簇或者扇区。综上所述,本专利技术提供了一种基于缓冲对齐的文件读写方法及系统,本专利技术所提供的技术方案,当存在程序读写请求时,首先判断内部缓存区是否存在待读取数据,若存在则直接返回待读取数据,否则根据文件的预设单位对齐后,调用系统API读取数据,其中读取数据包含待读取数据,其大小为预设单位的整数倍,并将其存储至内部缓存区,并将用户实际需要的待读取数据返回,而存储至内部缓存区中的数据等待后续读取。本专利技术的有益效果为:本专利技术的技术方案利用预设单位对齐,读取相比待读取数据要大的数据存储于内部缓存区,通常是预设单位整数倍的数据,再根据需要返回实际需要的待读取数据,下次存在读写请求时,首先判断内部缓存区中是否存在所需数据,若不存在,再调用系统API读取。由于系统总是要读取数据的,本专利技术所述技术方案只是增加了一些内存移动时间和缓存空间,并不增加额外开销;并减少了调用系统API的次数和时间;对外显示的文件读取情况包括移动指针,只是预设单位的整数倍,隐藏了真正所需的数据内容,增加了被分析的难度;同时,在编写程序时可以不考虑频繁读写的问题,降低编写程序的复杂度。附图说明为了更清楚地说明本专利技术的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术提供的一种基于缓冲对齐的文件读写方法实施例流程图;图2为本专利技术提供的一种基于缓冲对齐的文件读写系统实施例结构图。具体实施方式本专利技术给出了一种基于缓冲对齐的文件读写方法及系统的实施例,为了使本
的人员更好地理解本专利技术实施例中的技术方案,并使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图对本专利技术中技术方案作进一步详细的说明:本专利技术首先提供了一种基于缓冲对齐的文件读写方法实施例,如图1所示,包括:S101若存在程序读写请求,则判断内部缓存区是否包含待读取数据,若包含,则执行S104,否则执行S102;S102根据文件的预设单位对齐后,计算需要读取的位置和大小,所述大小为预设单位的整数倍;其中,所述预设单位根据需要设定,可以为自选的大小,可以为文件簇或者扇区。例如:预设单位是4096个字节,想要读取文件偏移1000的10个字节,那对齐后需要读取的位置和大小为0-4096个字节;如果读取偏移4095开始的10个字节,那对齐后需要读取的位置和大小为0-8192个字节。其中,所述大小为预设单位的整数倍,最优选地为最小的整数倍;S103基于所述需要读取的位置和大小,调用系统API读取数据并缓存至内部缓存区;S104根据实际需要返回待读取数据。其中,例如:想要读取文件偏移1000的10个字节,将0-4096个字节的数据缓存至内部缓存区后,将需要的10个字节返回给用户。本专利技术还提供了一种基于缓冲对齐的文件读写系统实施例,如图2所示,包括:判断模块201,用于当存在程序读写请求时,则判断内部缓存区是否包含待读取数据,若包含,则由返回模块204继续执行,否则由计算模块202继续执行;计算模块202,用于根据文件的预设单位对齐后,计算需要读取的位置和大小,所述大小为预设单位的整数倍;读取模块203,用于基于所述需要读取的位置和大小,调用系统API读取数据并缓存至内部缓存区;返回模块204,用于根据实际需要返回待读取数据。优选地,所述预设单位根据需要设定,包括:文件簇或者扇区。如上所述,传统的文件读写方法需要调用系统API对磁盘进行操作,从而读取指定位置和大小的数据,但是在需要频繁碎片读写的时候,这样频繁的调用系统API将十分耗费时间。本专利技术所述的技术方案每次在读取数据之前,判断内部缓存区是否存在待读取数据,若存在则将待读取数据直接返回,否则基于预设单位对齐后,读取包含待读取数据的预设单位整数倍的数据,并将读取数据整体存入内部缓存区,并将待读取数据返回。当下次存在程序读写请求时,首先验证内部缓存区中是否存在所需数据,从而尽可能减少系统调用API的次数,从而提高了文件读写性能。以上实施例用以说明而非限制本专利技术的技术方案。不脱离本专利技术精神和范围的任何修改或局部替换,均应涵盖在本专利技术的权利要求范围当中。本文档来自技高网
...

【技术保护点】
一种基于缓冲对齐的文件读写方法,其特征在于,包括:若存在程序读写请求,则判断内部缓存区是否包含待读取数据,若包含,则直接返回待读取数据,否则根据文件的预设单位对齐后,计算需要读取的位置和大小,所述大小为预设单位的整数倍;基于所述需要读取的位置和大小,调用系统API读取数据并缓存至内部缓存区;根据实际需要返回待读取数据。

【技术特征摘要】
1.一种基于缓冲对齐的文件读写方法,其特征在于,包括:
若存在程序读写请求,则判断内部缓存区是否包含待读取数据,若包含,则直接返回待读取数据,否则根据文件的预设单位对齐后,计算需要读取的位置和大小,所述大小为预设单位的整数倍;
基于所述需要读取的位置和大小,调用系统API读取数据并缓存至内部缓存区;
根据实际需要返回待读取数据。
2.如权利要求1所述的方法,其特征在于,所述预设单位根据需要设定,包括:文件簇或者扇区。
3.一种基于缓冲对齐的文件读写系统,其特征在于...

【专利技术属性】
技术研发人员:何公道沈长伟
申请(专利权)人:哈尔滨安天科技股份有限公司
类型:发明
国别省市:黑龙江;23

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1