【技术实现步骤摘要】
一种文件读取方法及装置
[0001]本申请涉及计算机数据处理
,尤其涉及一种文件读取方法及装置。
技术介绍
[0002]在日常开发中,经常会遇到需要从文件中读取数据进行处理的需求。
[0003]现有技术中,一种读取文件的方法为:顺序读取文件中的每一个字符到应用内存中,并依次判定当前字符是否为换行符,若是,则将两个换行符之间的数据作为一行数据输出。但此种读取文件的方式,仅支持换行符分割数据,如果数据本身包含了换行符,那每次读取出来的就不是一条完整的数据。
[0004]另一种读取文件的方法为:将文件中的数据全部读到应用内存中,以正则匹配的方式匹配文件中的分隔符,当匹配到分隔符后拆分分隔符左右两边的数据,但此种读取文件的方式,会一次性读取大量数据,当文件体积很时下可能出现超出可用内存(out of memery,OOM)的情况。
[0005]因此,目前亟需一种方案,用以在使用少量内存的情况下,快速高效地读取并分割文件中的数据。
技术实现思路
[0006]本申请提供一种文件读取方法和装置 ...
【技术保护点】
【技术特征摘要】
1.一种文件读取方法,其特征在于,所述方法包括:从位于系统内存的待读取文件中读取设定长度的字符串至应用内存的设定缓冲区;将所述设定缓冲区中的字符串与特征字符串进行匹配;所述特征字符串包括多个指定字符;若匹配成功,则将所述设定缓冲区中位于所述特征字符串前的字符串作为一条数据返回给应用。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若匹配不成功,则从所述设定缓冲区中取出部分字符串进行缓存,继续执行所述从位于系统内存的待读取文件中读取设定长度的字符串至应用内存的设定缓冲区的步骤,直至所述设定缓冲区中的字符串与特征字符串匹配成功或所述待读取文件读取完毕;在匹配成功时,将所述设定缓冲区中位于所述特征字符串前的字符串及所述部分字符串作为一条数据返回给所述应用。3.根据权利要求1所述的方法,其特征在于,所述设定缓冲区的大小为N并划分第一部分和第二部分;所述设定长度的字符串占所述设定缓冲区的大小为N/2;所述从位于系统内存的待读取文件中读取设定长度的字符串至应用内存的设定缓冲区,包括:从位于系统内存的待读取文件中读取设定长度的字符串;按照设定的写入顺序,将所述设定长度的字符串写入至所述第一部分或所述第二部分。4.根据权利要求3所述的方法,其特征在于,所述从所述设定缓冲区中取出部分字符串进行缓存之前,还包括:确定所述设定缓冲区的所述第一部分中是否存有剩余字符串;所述从所述设定缓冲区中取出部分字符串进行缓存,包括:若所述设定缓冲区的所述第一部分中存有剩余字符串,则将所述第一部分的剩余字符串作为部分字符串,取出并缓存。5.根据权利要求2所述的方法,其特征在于,所述从所述设定缓冲区中取出部分字符串进行缓存,包括:从所述设定缓冲区中取出部分字符串缓存至...
【专利技术属性】
技术研发人员:吴志祥,林志农,戚桂凤,吴奔,范新生,陈立伟,杨帆,吴宇,
申请(专利权)人:建信金融科技有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。