一种文件处理方法、装置、设备、存储介质、系统及车辆与流程

专利查询9月前  59



1.本技术涉及数据处理技术领域,尤其涉及一种文件处理方法、装置、设备、存储介质、系统及车辆。


背景技术:

2.自动驾驶应用的加入使整车功能更加复杂,不同的应用可能由很多供应商提供,其次应用也越来越复杂,对计算资源和性能要求越来越高,需要性能更高的硬件来支持。自适应汽车开放式系统架构(adaptive autosar,ap)是一款高度灵活、高性能且支持动态通讯等特性的新软件架构平台。ap架构既能满足应用对高性能计算的需求又具有一定的功能安全等级。ap主要提供高性能的计算和通信机制,并提供灵活的软件配置,主要分为12个功能模块和3个服务模块。
3.持久化存储管理模块是提供键值存储和文件存储的功能模块。其中,文件存储只是提供存取文件内容的功能,而文件内容以及格式是由应用来决定的。这样存在以下几个问题。
4.第一,如果各模块使用相同格式的文件,则需要各自实现解析此类文件的功能。例如,每个模块都需要解析自己的配置文件,这种配置文件的格式基本类似,各模块都实现解析功能,会造成功能的冗余。此外,很多模块对写文件也有相应的格式要求,这样也会存在格式转换的功能冗余。
5.第二,对于某些只读的文件,例如配置文件可能需要读取多次,有的可能只需要读取一次,如果是读取一次存放在内存中,后续直接从内存中读取,那么对于只读一次的模块来说可能会造成内存的浪费。如果是每次都从文件中读取,那么可能会存在效率问题。如果是混合使用,则会提升编码的难度以及逻辑的复杂度。
6.第三,因为同一功能在不同模块都实现,如果这个功能有变动,则所有模块都需要同步开发,开发工作量巨大。


技术实现要素:

7.本发明提供一种文件处理方法、装置、设备、存储介质、系统及车辆,以至少解决自适应汽车开放式系统架构中各模块各自实现文件读写功能所造成的功能冗余问题。
8.为解决上述技术问题,第一方面,本技术实施例公开了一种文件处理方法,方法包括:
9.接收文件处理模块发送的针对目标文件的文件打开请求;
10.根据文件打开请求在内存中打开目标文件,并向文件处理模块发送目标文件的操作句柄;
11.接收文件处理模块根据操作句柄发送的与读写类型相对应的处理对象;
12.根据处理对象对目标文件进行处理,并向文件处理模块发送处理结果。
13.进一步的,当读写类型为读类型时,根据处理对象对目标文件进行处理,包括:
14.根据处理对象对目标文件进行读文件操作的处理。
15.进一步的,处理对象为主键;根据处理对象对目标文件进行读文件操作的处理,包括:
16.根据主键解析目标文件的内容;
17.根据目标文件的内容获得与主键所对应的参数。
18.进一步的,当读写类型为写类型时,根据处理对象对目标文件进行处理,包括:
19.根据处理对象对目标文件进行写文件操作的处理。
20.进一步的,处理对象为结构化数据;根据处理对象对目标文件进行写文件操作的处理,包括:
21.根据结构化数据确定与结构化数据对应的格式模板;格式模板为根据目标文件的保存格式预先配置在持久化存储管理模块中;
22.根据格式模板将结构化数据写入目标文件。
23.进一步的,根据格式模板将结构化数据写入目标文件之前,还包括:
24.若未找到与结构化数据对应的格式模板,则向文件处理模块发送错误提示信息。
25.进一步的,根据文件打开请求在内存中打开目标文件,包括:
26.根据文件打开请求在存储磁盘中确定目标文件;
27.将目标文件在内存中打开。
28.进一步的,将目标文件在内存中打开之前,还包括:
29.在存储磁盘中确定出目标文件的情况下,确定打开目标文件所需要的打开内存大小及内存中所剩余存储空间大小;
30.若剩余存储空间小于打开内存,则释放已占用内存,以使目标文件能够在内存中打开。
31.进一步的,释放已占用内存,包括:
32.基于淘汰算法在内存中确定待解除占用文件;
33.将待解除占用文件关闭以释放已占用内存。
34.第二方面,本技术实施例公开了一种文件处理装置,装置包括:
35.文件打开请求接收单元,用于接收文件处理模块发送的针对目标文件的文件打开请求;
36.目标文件确定单元,用于根据文件打开请求在内存中打开目标文件,并向文件处理模块发送目标文件的操作句柄;
37.处理对象接收单元,用于接收文件处理模块根据操作句柄发送的与读写类型相对应的处理对象;
38.目标文件处理单元,用于根据处理对象对目标文件进行处理,并向文件处理模块发送处理结果。
39.在一些可选的实施方式中,当读写类型为读类型时,目标文件处理单元包括:
40.读文件处理子单元,用于根据处理对象对目标文件进行读文件操作的处理。
41.在一些可选的实施方式中,处理对象为主键;读文件处理子单元包括:
42.目标文件解析分单元,用于根据主键解析目标文件的内容;
43.参数获得分单元,用于根据目标文件的内容获得与主键所对应的参数。
44.在一些可选的实施方式中,当读写类型为写类型时,目标文件处理单元包括:
45.写文件处理子单元,用于根据处理对象对目标文件进行写文件操作的处理。
46.在一些可选的实施方式中,处理对象为结构化数据;写文件处理子单元包括:
47.格式模板确定分单元,用于根据结构化数据确定与结构化数据对应的格式模板;格式模板为根据目标文件的保存格式预先配置在持久化存储管理模块中;
48.目标文件写入分单元,用于根据格式模板将结构化数据写入目标文件。
49.在一些可选的实施方式中,写文件处理子单元还包括:
50.错误提示信息发送分单元,用于若未找到与结构化数据对应的格式模板,则向文件处理模块发送错误提示信息。
51.在一些可选的实施方式中,目标文件确定单元包括:
52.目标文件磁盘确定子单元,用于根据文件打开请求在存储磁盘中确定目标文件;
53.目标文件打开子单元,用于将目标文件在内存中打开。
54.在一些可选的实施方式中,目标文件确定单元还包括:
55.存储空间确定子单元,用于在存储磁盘中确定出目标文件的情况下,确定打开目标文件所需要的打开内存大小及内存中所剩余存储空间大小;
56.内存释放子单元,用于若剩余存储空间小于打开内存,则释放已占用内存,以使目标文件能够在内存中打开。
57.在一些可选的实施方式中,内存释放子单元包括:
58.占用文件确定分单元,用于基于淘汰算法在内存中确定待解除占用文件;
59.占用内存释放分单元,用于将待解除占用文件关闭以释放已占用内存。
60.第三方面,本技术实施例公开了一种电子设备,设备包括处理器和存储器,存储器中存储有至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行如上所述的文件处理方法。
61.第四方面,本技术实施例公开了一种计算机可读存储介质,存储介质中存储有至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行以实现如上所述的文件处理方法。
62.第五方面,本技术实施例公开了一种文件处理系统,系统包括持久化存储管理模块和至少一个文件处理模块;
63.持久化存储管理模块用于接收文件处理模块发送的针对目标文件的文件打开请求;
64.持久化存储管理模块还用于根据文件打开请求在内存中打开目标文件,并向文件处理模块发送目标文件的操作句柄;
65.持久化存储管理模块还用于接收文件处理模块根据操作句柄发送的与读写类型相对应的处理对象;
66.持久化存储管理模块还用于根据处理对象对目标文件进行处理,并向文件处理模块发送处理结果。
67.第六方面,本技术实施例公开了一种车辆,车辆包括如上所述的文件处理系统。
68.本技术实施例提供的文件处理方法、装置、设备、存储介质、系统及车辆,具有如下技术效果:
69.该文件处理方法在持久化存储管理模块进行功能封装,由持久化存储管理模块提供统一的调用函数,实现文件处理功能。当自适应汽车开放式系统架构中的其他模块需要读写文件时,通过发送请求,由持久化存储管理模块执行文件解析或写文件,从而不需要在每个模块实现文件读写功能,避免了文件读写功能的冗余。此外,当文件读写功能进行修改时,只需要对持久化存储管理模块内调用函数进行修改即可,大大减轻开发工作量,节约资源。
附图说明
70.为了更清楚地说明本技术实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
71.图1是本技术实施例提供的一种应用环境的示意图;
72.图2是本技术实施例提供的一种文件处理方法的流程示意图;
73.图3是本技术实施例提供的一种文件读取方法的流程示意图;
74.图4是本技术实施例提供的一种写文件的方法流程示意图;
75.图5是本技术实施例提供的一种文件处理装置的结构示意图;
76.图6是本技术实施例提供的一种文件处理装置的结构示意图。
具体实施方式
77.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
78.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
79.目前,自适应汽车开放式系统架构中的持久化存储管理模块仅提供存取文件内容的功能,而不具备读取文件和写文件的功能。读取文件和写文件的功能由其他各个功能模块在各自模块中实现。这就导致了读取文件和写文件的功能冗余。此外,基于目前汽车开放式系统架构所实现配置文件读取功能,由于有的配置文件读取次数较少,有的配置文件读取次数较为频繁,如果将配置文件都存放在内存中,对于读取次数较少的配置文件来说,就造成了内存的浪费。然而,如果将配置文件不存放在内存中,对于读取较为频繁的配置文件来说,每次都要解析配置文件,造成效率低下。
80.有鉴于此,本技术实施例提供了一种文件处理方法,实现自适应汽车开放式系统
架构的各模块中对于文件解析、格式转换等冗余功能的优化,同时对读取配置文件时的效率与内存使用限制之间做出了平衡优化。
81.请参阅图1,图1是本技术实施例提供的一种应用环境的示意图,自适应汽车开放式系统架构包括一个或多个文件处理模块和一个持久化存储管理模块。文件处理模块为用于文件处理的模块,持久化存储管理模块为用于文件存储的模块。持久化存储管理模块还为文件处理模块提供文件存储、文件读取、写文件等功能。持久化存储管理模块封装有统一调用函数,文件处理模块通过统一调用函数来获取文件中的参数,或向文件中写入固定格式的文件内容。
82.以下介绍本技术一种文件处理方法的具体实施例,图2是本技术实施例提供的一种文件处理方法的流程示意图,本说明书提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,该文件处理方法应用于持久化存储管理模块,该方法可以包括:
83.s201:接收文件处理模块发送的针对目标文件的文件打开请求。
84.本技术实施例中,当文件处理模块需要进行读文件或写文件时,文件处理模块先向持久化存储管理模块发送打开文件的请求,以使持久化存储管理模块将要读取的文件或要写入的文件在内存中打开。具体的,文件处理模块发送的文件打开请求中携带有函数入参,文件处理模块通过持久化存储管理模块的应用程序接口(application programming interface,api)调用持久化存储管理模块中的统一调用函数打开文件存储。可选的,函数入参包括文件名和文件类型。
85.s203:根据文件打开请求在内存中打开目标文件,并向文件处理模块发送目标文件的操作句柄。
86.本技术实施例中,持久化存储管理模块接收到文件打开请求后,根据文件请求中所携带的文件名和文件类型通过统一调用函数在内存中查找目标文件。如果目标文件已经在内存中打开,则持久化存储管理模块直接向文件处理模块发送该目标文件的操纵句柄。如果并没有在内存中打开,则持久化存储管理模块根据文件打开请求,即根据文件名和文件类型在存储磁盘中确定出该目标文件,然后将该目标文件在内存中打开。
87.在一个可选的实施方式中,持久化存储管理模块将目标文件在内存中打开之前还包括对内存进行优化的过程。持久化存储管理模块在存储磁盘中确定出目标文件的情况下,确定打开目标文件所需要的打开内存大小,以及内存中所剩余存储空间大小。并根据打开内存和剩余存储空间大小判断剩余存储空间是否足够目标文件在内存中打开。如果剩余存储空间小于打开内存,则释放已占用内存,以使目标文件能够在内存中打开。具体的,释放已占用内存可以包括:持久化存储管理模块基于淘汰算法在内存中确定待解除占用文件,然后将待解除占用文件关闭以释放已占用内存。可选的,淘汰算法可以是lru(least recently used)算法,即最近最少使用算法。即根据数据的历史访问记录来进行确定待解除占用文件。可选的,淘汰算法还可以是fifo(first input first output)算法,即先进先出算法。可选的,淘汰算法还可以是lfu(least frequently used)算法,即最少使用算法。
可以理解的是,在内存足够的前提下,所有的文件都可以存放在内存中。该实施方式中,通过对内存的优化,使读取较为频繁的配置文件一直存放在内存中,一方面避免了内存资源的浪费,另一方面提高了文件读取效率。
88.s205:接收文件处理模块根据操作句柄发送的与读写类型相对应的处理对象。
89.本技术实施例中,文件处理模块接收到持久化存储管理模块发送的目标文件的操作句柄后,文件处理模块使用该操作句柄向持久化存储管理模块发送处理对象,以使持久化存储管理模块对目标文件进行处理。处理对象与文件处理模块所要进行的处理进程有关,即与读写类型相关。例如,读写类型为读类型,表明文件处理模块需要读取目标文件,则向持久化存储管理模块发送的处理对象为主键或键值对请求。读写类型为写类型,表明文件处理模块需要写入目标文件,则向持久化存储管理模块发送的处理对象为结构化数据。
90.s207:根据处理对象对目标文件进行处理,并向文件处理模块发送处理结果。
91.本技术实施例中,持久化存储管理模块接收到处理对象后,根据处理对象对目标文件进行读文件操作或写文件操作的处理,具体的为文件解析或文件写入操作,并在执行文件解析或文件写入操作后向文件处理模块发送处理的结果。
92.本技术实施例中,如果文件处理模块需要读取目标文件,持久化存储管理模块根据处理对象对目标文件进行读文件操作的处理。即文件处理模块向持久化存储管理模块发送的处理对象为主键或键值对请求,持久化存储管理模块根据处理对象对目标文件进行处理的过程可以是:持久化存储管理模块根据主键解析目标文件的内容,持久化存储管理模块根据目标文件的内容向文件处理模块发送与主键所对应的参数。
93.本技术实施例中,如果文件处理模块需要写入目标文件,即文件处理模块向持久化存储管理模块发送的处理对象为结构化数据。持久化存储管理模块根据处理对象对目标文件进行处理的过程可以是:持久化存储管理模块根据结构化数据确定与结构化数据对应的格式模板,格式模板为根据目标文件的保存格式预先配置在持久化存储管理模块中。然后持久化存储管理模块根据格式模板将结构化数据写入目标文件。持久化存储管理模块根据结构化数据确定与结构化数据对应的格式模板时,如果没有找到与结构化数据对应的格式模板,则向文件处理模块发送错误提示信息。
94.作为一种可选的实施方式,图3是本技术实施例提供的一种文件读取方法的流程示意图,如图3所示,读文件的过程可以包括:
95.s301:文件处理模块发送打开文件请求,打开文件请求中携带有函数入参,函数入参包括文件名和文件类型。
96.本技术实施例中,当文件处理模块需要进行读文件时,文件处理模块先向持久化存储管理模块发送打开文件的请求,以使持久化存储管理模块将要读取的文件或要写入的文件在内存中打开。
97.s303:持久化存储管理模块根据函数入参,通过统一调用函数在内存中查找目标文件。
98.本技术实施例中,统一调用函数是一个函数集合,该函数集合中包括多个用于实现不同功能的函数。持久化存储管理模块接收到函数入参后,通过统一调用函数中的查找函数在内存中查找目标文件。
99.s305:持久化存储管理模块确定目标文件是否已经在内存中打开。
100.本技术实施例中,持久化存储管理模块通过查找判断目标文件是否已经在内存中打开。如果目标文件已经在内存中打开则转至步骤s307,如果目标文件并未在内存中打开则转至步骤s309。
101.s307:持久化存储管理模块向文件处理模块发送目标文件的操作句柄。
102.本技术实施例中,如果目标文件已经在内存中打开,则持久化存储管理模块直接向文件处理模块发送该目标文件的操纵句柄。文件处理模块通过使用持久化存储操作模块发送的操作句柄可以实现对目标文件进行处理。
103.s309:持久化存储管理模块查找目标文件是否存在。
104.本技术实施例中,如果目标文件并未在内存中打开,则持久化存储管理模块需要确定目标文件是否存在。具体的,持久化存储管理模块通过查找函数在存储磁盘中确定是否存在该目标文件,如果存在则转至步骤s313,如果不存在则转至步骤s311。
105.s311:持久化存储管理模块向文件处理模块发送错误码。
106.本技术实施例中,持久化存储管理模块通过查找函数并没有在存储磁盘中找到该目标文件,则向文件处理模块发送错误码,文件处理模块接收到错误码可进行确认所输入的函数入参是否有误。
107.s313:持久化存储管理模块确定剩余存储空间是否足够打开目标文件。
108.本技术实施例中,持久化存储管理模块通过查找函数在存储磁盘中找到该目标文件后,首先需要确定剩余存储空间是否足够打开该目标文件。具体的,持久化存储管理模块确定出目标文件的打开内存大小以及内存中剩余存储空间大小,通过比对确定剩余存储空间是否足够打开该目标文件。如果剩余存储空间足够打开该目标文件,则转至步骤s317。如果剩余存储空间不够打开该目标文件,则转至步骤s315。
109.s315:持久化存储管理模块使用lru算法释放最早最少使用的文件内存,以使剩余存储空间足够打开目标文件。
110.本技术实施例中,如果剩余存储空间不够打开目标文件,持久化存储管理模块使用lru算法释放最早最少使用的文件内存,以使剩余存储空间足够打开目标文件。该步骤中,所使用的算法也可以是fifo算法、lfu算法等淘汰算法。
111.s317:持久化存储管理模块解析目标文件内容并加载到内存中。
112.本技术实施例中,在剩余存储空间足够打开目标文件的情况下,对目标文件进行解析,并将目标文件的内容加载到内存中,以便后续文件处理模块获取文件内容中的键值或键值对。
113.s319:持久化存储管理模块向文件处理模块发送目标文件的操作句柄。
114.本技术实施例中,当目标文件在内存中被打开后,持久化存储管理模块向文件处理模块发送该目标文件的操作句柄,以便文件处理模块使用操作句柄来获取对应的值。
115.s321:文件处理模块发送主键或键值对请求到持久化存储管理模块。
116.本技术实施例中,文件处理模块获取到目标文件的操作句柄后,使用操作句柄向持久化存储管理模块发送主键或键值对请求,其中,主键用于获取目标文件中与主键所对应的值,键值对请求用于获取目标文件中的所有键值对。
117.s323:持久化存储管理模块向文件处理模块发送值或键值对。
118.本技术实施例中,持久化存储管理模块接收到文件处理模块发送的主键或键值对
请求后,通过统一调用函数中获取函数获取目标文件中与主键对应的值或全部键值对。作为一种示例,目标文件里的内容如下所示:
119.{
120."id":1,
121."message":"hello"
122.}
123.持久化存储管理模块中实现了一个通用的函数(get),就可以通过get(“id”)得到配置文件中的值1,通过get(“message”)得到配置文件中的值hello。然后持久化存储管理模块将值“1”,或值“hello”发送给文件处理模块。
124.本技术实施例所述的文件读取方法,由持久化存储管理模块实现文件的读取与解析,文件处理模块通过主键或键值对请求即可获取到相应的参数,无需在每个文件处理模块实现文件解析功能,从而避免文件解析功能的冗余。此外,持久化存储管理模块将使用频率较高的文件放在内存中,一方面方便文件处理模块使用,提高效率,另一方面避免使用频率不高的文件占用内存,造成内存浪费。
125.作为另一种可选的实施方式,图4是本技术实施例提供的一种写文件的方法流程示意图,如图4所示,写文件的过程可以包括:
126.s401:文件处理模块发送打开文件请求,打开文件请求中携带有函数入参,函数入参包括文件名和文件类型。
127.本技术实施例中,当文件处理模块需要进行写文件时,文件处理模块先向持久化存储管理模块发送打开文件的请求,以使持久化存储管理模块将要读取的文件或要写入的文件在内存中打开。
128.s403:持久化存储管理模块根据函数入参和统一调用函数将目标文件在内存中打开。
129.本技术实施例中,在写文件时,持久化存储管理模块需要先将目标文件在内存中打开。与读文件流程相似的是,持久化存储管理模块首先确定目标文件是否已经在内存中打开,当目标文件已经在内存中打开时,则持久化存储管理模块可以直接向文件发送该目标文件的操作句柄。当目标文件没有在内存中打开时,则持久化存储管理模块根据接收到的函数入参,通过统一调用函数中的查找函数在存储磁盘中查找该目标文件,然后将该目标文件在内存中打开。如果持久化存储管理模块并未在存储磁盘中查找到该目标文件,则向文件处理模块发送错误码,文件处理模块接收到错误码可进行确认所输入的函数入参是否有误。
130.本技术实施例中,与读文件流程所不同的是,在写文件时,持久化存储管理模块并不需要对目标文件进行解析,只用将目标文件在内存中打开即可。
131.s405:持久化存储管理模块向文件处理模块发送目标文件的操作句柄。
132.本技术实施例中,当持久化存储管理模块将目标文件在内存中打开后,持久化存储管理模块将该目标文件的操作句柄发送给需要写文件为文件处理模块。
133.s407:文件处理模块向持久化存储管理模块发送写文件的结构化数据以及存储的文件格式。
134.本技术实施例中,文件处理模块获取到目标文件的操作句柄后,使用该操作句柄
向持久化存储管理模块发送结构化数据,并同时把需要写入的文件格式发送给持久化存储管理模块。
135.s409:持久化存储管理模块根据文件格式查找配置的模板。
136.本技术实施例中,持久化存储管理模块中预先配置有不同格式的文件写入模板,例如,json、xml等格式的模板。持久化存储管理模块根据文件格式使用统一调用函数查找预先配置的模板。
137.s411:持久化存储管理模块确定模板是否存在。
138.本技术实施例中,持久化存储管理模块通过查找预先配置的模板,确定该种格式的模板是否存在,如果存在则转至步骤s415,如果不存在则转至步骤s413。
139.s413:持久化存储管理模块向文件处理模块发送错误码。
140.本技术实施例中,如果该结构化数据所需要保存的文件格式并没有在持久化存储管理模块中预先配置相应的模板,即持久化存储管理模块未找到相应文件格式的模板,则向文件处理模块发送错误提示信息。
141.s415:持久化存储管理模块根据结构化数据和配置的模板组合成固定格式的文件。
142.本技术实施例中,如果持久化存储管理模块确定出结构化数据所需要保存的文件格式所对应的模板,则持久化存储管理模块根据结构化数据和配置的模板组合成固定格式的文件进行存储。
143.作为一种示例,文件处理模块向持久化存储管理模块发送的结构数据如下:
[0144][0145]
该示例为一个结构体定义变量的内存指针。该实例中,结构化数据就是&book。文件处理模块需要将该结构化数据以json的文件格式写入目标文件,则持久化存储管理模块首先确定预先配置的模板,持久化存储管理模块确定预先配置的模板如下所示:
[0146]
title:book_title:char
[0147]
author:book_author:char
[0148]
subject:book_subject:char
[0149]
book_id:book_id:int
[0150]
其中,列分隔符是;,第一列是结构体中的字段名字,第二列是需要输出在文件中的名字,第三列是字段的类型。
[0151]
该示例中,文件处理模块向持久化存储管理模块所发送的结构化数据&book包括如下内容:
[0152]
strcpy(book.title,"c语言")
[0153]
strcpy(book.author,"zhangsan"
[0154]
strcpy(book.subject,"编程语言")
[0155]
book.book_id=12234
[0156]
该示例中,持久化存储管理模块通过配置的模板生成的文件内容如下:
[0157]
{
[0158]
"book_title":"c语言",
[0159]
"book_author":"zhangsan",
[0160]
"book_subject":"编程语言",
[0161]
"book_id":12234
[0162]
}
[0163]
由此,持久化存储管理模块完成文件的写入。
[0164]
s417:持久化存储管理模块向文件处理模块发送存储成功的提示信息。
[0165]
本技术实施例中,在文件存储成功的情况下,即持久化存储管理模块将文件写入成功的情况下向文件处理模块发送存储成功的提示信息。
[0166]
本技术实施例所述的写文件方法,通过在持久化存储管理模块中预先配置多种固定格式的模板,由持久化存储管理模块实现文件的写入功能,无需在每个文件处理模块实现文件写入功能,从而避免文件写入功能的冗余。
[0167]
本技术实施例还提供了一种文件处理装置,该装置应用于持久化存储管理模块,持久化存储管理模块为自适应汽车开放式系统架构中用于文件存储的模块。图5是本技术实施例提供的一种文件处理装置的结构示意图,如图5所示,该装置包括:
[0168]
文件打开请求接收单元501,用于接收文件处理模块发送的文件打开请求。文件处理模块为自适应汽车开放式系统架构中用于文件处理的模块,自适应汽车开放式系统架构中包括至少一个文件处理模块。
[0169]
目标文件确定单元503,用于根据文件打开请求在内存中确定目标文件,并向文件处理模块发送目标文件的操作句柄。
[0170]
处理对象接收单元505,用于接收文件处理模块根据操作句柄发送的处理对象。
[0171]
目标文件处理单元507,用于根据处理对象对目标文件进行处理。
[0172]
在一些可选的实施方式中,当读写类型为读类型时,目标文件处理单元包括:
[0173]
读文件处理子单元,用于根据处理对象对目标文件进行读文件操作的处理。
[0174]
在一些可选的实施方式中,处理对象为主键;读文件处理子单元包括:
[0175]
目标文件解析分单元,用于根据主键解析目标文件的内容;
[0176]
参数获得分单元,用于根据目标文件的内容获得与主键所对应的参数。
[0177]
在一些可选的实施方式中,当读写类型为写类型时,目标文件处理单元包括:
[0178]
写文件处理子单元,用于根据处理对象对目标文件进行写文件操作的处理。
[0179]
在一些可选的实施方式中,处理对象为结构化数据;写文件处理子单元包括:
[0180]
格式模板确定分单元,用于根据结构化数据确定与结构化数据对应的格式模板;格式模板为根据目标文件的保存格式预先配置在持久化存储管理模块中;
[0181]
目标文件写入分单元,用于根据格式模板将结构化数据写入目标文件。
[0182]
在一些可选的实施方式中,写文件处理子单元还包括:
[0183]
错误提示信息发送分单元,用于若未找到与结构化数据对应的格式模板,则向文件处理模块发送错误提示信息。
[0184]
在一些可选的实施方式中,目标文件确定单元包括:
[0185]
目标文件磁盘确定子单元,用于根据文件打开请求在存储磁盘中确定目标文件;
[0186]
目标文件打开子单元,用于将目标文件在内存中打开。
[0187]
在一些可选的实施方式中,目标文件确定单元还包括:
[0188]
存储空间确定子单元,用于在存储磁盘中确定出目标文件的情况下,确定打开目标文件所需要的打开内存大小及内存中所剩余存储空间大小;
[0189]
内存释放子单元,用于若剩余存储空间小于打开内存,则释放已占用内存,以使目标文件能够在内存中打开。
[0190]
在一些可选的实施方式中,内存释放子单元包括:
[0191]
占用文件确定分单元,用于基于淘汰算法在内存中确定待解除占用文件;
[0192]
占用内存释放分单元,用于将待解除占用文件关闭以释放已占用内存。
[0193]
本技术实施例中的装置与方法实施例基于同样地申请构思。
[0194]
本技术实施例还提供了一种电子设备,设备包括处理器和存储器,存储器中存储有至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行如上所述的文件处理方法。
[0195]
本技术实施例中,存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述终端的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。作为一个示例,该设备为车载电脑,如电子控制单元(ecu,electronic control unit)。
[0196]
本技术实施例提供了一种计算机可读存储介质,存储介质中存储有至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行以实现如上所述的文件处理方法。
[0197]
本技术实施例中,上述存储介质可以位于计算机网络的多个网络客户端中的至少一个网络客户端。可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0198]
本技术实施例提供了一种文件处理系统,图6是本技术实施例提供的一种文件处理装置的结构示意图,如图6所示,系统包括持久化存储管理模块和至少一个文件处理模块。
[0199]
持久化存储管理模块用于接收文件处理模块发送的针对目标文件的文件打开请求;
[0200]
持久化存储管理模块还用于根据文件打开请求在内存中打开目标文件,并向文件处理模块发送目标文件的操作句柄;
[0201]
持久化存储管理模块还用于接收文件处理模块根据操作句柄发送的与读写类型相对应的处理对象;
[0202]
持久化存储管理模块还用于根据处理对象对目标文件进行处理,并向文件处理模块发送处理结果。
[0203]
本技术实施例中,文件处理系统基于自适应汽车开放式系统架构设置。持久化存储管理模块为自适应汽车开放式系统架构中用于文件存储的模块。文件处理模块为自适应汽车开放式系统架构中用于文件处理的模块。
[0204]
本技术实施例提供了一种车辆,车辆包括如上所述的文件处理系统。
[0205]
本技术实施例提供的文件处理方法、装置、设备、存储介质、系统及车辆,在持久化存储管理模块进行功能封装,由持久化存储管理模块提供统一的调用函数,实现文件解析和写文件功能。当自适应汽车开放式系统架构中的其他模块需要读写文件时,通过发送请求,由持久化存储管理模块执行文件解析或写文件,从而不需要在每个模块实现文件读写功能,避免了文件读写功能的冗余。当文件读写功能需要进行修改时,只需要对持久化存储管理模块进行修改即可,大大减轻开发工作量,节约资源。此外,持久化存储管理模块将使用频率较高的文件放在内存中,一方面方便文件处理模块使用,提高效率,另一方面避免使用频率不高的文件占用内存,造成内存浪费。
[0206]
需要说明的是:上述本技术实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0207]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0208]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0209]
以上所述仅为本技术的较佳实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。

技术特征:
1.一种文件处理方法,其特征在于,所述方法包括:接收文件处理模块发送的针对目标文件的文件打开请求;根据所述文件打开请求在内存中打开所述目标文件,并向所述文件处理模块发送所述目标文件的操作句柄;接收所述文件处理模块根据所述操作句柄发送的与读写类型相对应的处理对象;根据所述处理对象对所述目标文件进行处理,并向所述文件处理模块发送处理结果。2.根据权利要求1所述的文件处理方法,其特征在于,当所述读写类型为读类型时,所述根据所述处理对象对所述目标文件进行处理,包括:根据所述处理对象对所述目标文件进行读文件操作的处理。3.根据权利要求2所述的文件处理方法,其特征在于,所述处理对象为主键;所述根据所述处理对象对所述目标文件进行读文件操作的处理,包括:根据所述主键解析所述目标文件的内容;根据所述目标文件的内容获得与所述主键所对应的参数。4.根据权利要求1所述的文件处理方法,其特征在于,当所述读写类型为写类型时,所述根据所述处理对象对所述目标文件进行处理,包括:根据所述处理对象对所述目标文件进行写文件操作的处理。5.根据权利要求4所述的文件处理方法,其特征在于,所述处理对象为结构化数据;所述根据所述处理对象对所述目标文件进行写文件操作的处理,包括:根据所述结构化数据确定与所述结构化数据对应的格式模板;所述格式模板为根据所述目标文件的保存格式预先配置在所述持久化存储管理模块中;根据所述格式模板将所述结构化数据写入所述目标文件。6.根据权利要求5所述的文件处理方法,其特征在于,所述根据所述格式模板将所述结构化数据写入所述目标文件之前,还包括:若未找到与所述结构化数据对应的格式模板,则向所述文件处理模块发送错误提示信息。7.根据权利要求1所述的文件处理方法,其特征在于,所述根据所述文件打开请求在内存中打开目标文件,包括:根据所述文件打开请求在存储磁盘中确定所述目标文件;将所述目标文件在内存中打开。8.根据权利要求7所述的文件处理方法,其特征在于,所述将所述目标文件在内存中打开之前,还包括:在存储磁盘中确定出所述目标文件的情况下,确定打开所述目标文件所需要的打开内存大小及内存中所剩余存储空间大小;若所述剩余存储空间小于所述打开内存,则释放已占用内存,以使所述目标文件能够在内存中打开。9.根据权利要求8所述的文件处理方法,其特征在于,所述释放已占用内存,包括:基于淘汰算法在内存中确定待解除占用文件;将所述待解除占用文件关闭以释放所述已占用内存。10.一种文件处理装置,其特征在于,所述装置包括:
文件打开请求接收单元,用于接收文件处理模块发送的针对目标文件的文件打开请求;目标文件确定单元,用于根据所述文件打开请求在内存中打开所述目标文件,并向所述文件处理模块发送所述目标文件的操作句柄;处理对象接收单元,用于接收所述文件处理模块根据所述操作句柄发送的与读写类型相对应的处理对象;目标文件处理单元,用于根据所述处理对象对所述目标文件进行处理,并向所述文件处理模块发送处理结果。11.一种电子设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行如权利要求1-9任一所述的文件处理方法。12.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如权利要求1-9任一所述的文件处理方法。13.一种文件处理系统,其特征在于,所述系统包括持久化存储管理模块和至少一个文件处理模块;所述持久化存储管理模块用于接收文件处理模块发送的针对目标文件的文件打开请求;所述持久化存储管理模块还用于根据所述文件打开请求在内存中打开所述目标文件,并向所述文件处理模块发送所述目标文件的操作句柄;所述持久化存储管理模块还用于接收所述文件处理模块根据所述操作句柄发送的与读写类型相对应的处理对象;所述持久化存储管理模块还用于根据所述处理对象对所述目标文件进行处理,并向所述文件处理模块发送处理结果。14.一种车辆,其特征在于,所述车辆包括如权利要求13所述的文件处理系统。

技术总结
本申请涉及数据处理技术领域,尤其涉及一种文件处理方法、装置、设备、存储介质、系统及车辆。方法包括:接收文件处理模块发送的针对目标文件的文件打开请求;根据文件打开请求在内存中打开目标文件,并向文件处理模块发送目标文件的操作句柄;接收文件处理模块根据操作句柄发送的与读写类型相对应的处理对象;根据处理对象对目标文件进行处理,并向文件处理模块发送处理结果。该文件处理方法在持久化存储管理模块进行功能封装,由持久化存储管理模块提供统一的调用函数,实现文件处理功能,避免了文件读写功能的冗余。此外,当文件读写功能进行修改时,只需要对持久化存储管理模块进行修改即可,大大减轻开发工作量,节约资源。节约资源。节约资源。


技术研发人员:秦民 姜壮 闫国启
受保护的技术使用者:中汽创智科技有限公司
技术研发日:2021.11.29
技术公布日:2022/3/8

最新回复(0)