CN104199856B - 呈现文件的方法和文件呈现装置 - Google Patents
呈现文件的方法和文件呈现装置 Download PDFInfo
- Publication number
- CN104199856B CN104199856B CN201410398501.XA CN201410398501A CN104199856B CN 104199856 B CN104199856 B CN 104199856B CN 201410398501 A CN201410398501 A CN 201410398501A CN 104199856 B CN104199856 B CN 104199856B
- Authority
- CN
- China
- Prior art keywords
- file
- file block
- block
- area
- presented
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/168—Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种呈现文件的方法和文件呈现装置,包括:将待呈现的文件划分为多个文件块,其中相邻的文件块的内容部分重叠;将第一文件块载入内存中,并呈现第一文件块,第一文件块为当前需要呈现的文件块;判断当前呈现的显示区域是否位于第一文件块的预定区域;若当前呈现的显示区域位于第一文件块的预定区域,则将第一文件块移出内存并将与第一文件块相邻的文件块载入内存并呈现。通过上述方式,本发明能够在不对用户体验造成影响的前提下,有效地降低呈现大容量文本文件时对系统内存资源的占用。
Description
技术领域
本发明涉及文件处理领域,特别是涉及一种呈现文件的方法和文件呈现装置。
背景技术
传统的文本编辑器运行于操作系统之上,其在对文本文件进行编辑时,需要将文本文件的全部内容载入内存后再进行编辑。而当文本文件的容量较大时,将文本文件的内容全部载入内存将占用大量的内存资源,从而影响操作系统的运行。
为解决上述问题,如图1所示,现有技术中,如Ubuntu系统自带的文本编辑软件Gedit使用的做法是:采样将大容量的文本文件分批载入内存的方法,该方法每隔一段时间载入一部分文本文件的内容,并采用“即载即显”的方式将已载入内存的文本文件的内容即时呈现给用户。这种做法虽然能够将大容量的文本载入时间化整为零,缩短用户的等待时间。但是在累积一段时间后,仍会将文本文件的全部内容载入内存中,依然会占用大量的内存资源。
现有技术中的其它的文件呈现系统也未对大容量文本文件进行有针对性的优化,或者仅在大容量文本文件的载入时间上作出了部分优化,并未从根本上杜绝进行文件呈现时可能发生的大量内存占用。
而当今电子设备日益朝小型化、轻量化发展,其自身配备的内存容量往往比较有限,这就要求在进行文件呈现时必须能够将对内存资源的占用量控制在合理的范围内,以免影响电子设备的正常运行。
发明内容
本发明解决的技术问题是,提供一种呈现文件的方法和文件呈现装置,能够在不对用户体验造成影响的前提下,有效地降低呈现大容量文件时对系统内存资源的占用。
为解决上述技术问题,本发明提供了一种呈现文件的方法,包括:
将待呈现的文件划分为多个文件块,其中相邻的文件块的内容部分重叠;
将第一文件块载入内存中,并呈现第一文件块,第一文件块为当前需要呈现的文件块;
判断当前呈现的显示区域是否位于第一文件块的预定区域;
若当前呈现的显示区域位于第一文件块的预定区域,则将第一文件块移出内存并将与第一文件块相邻的文件块载入内存并呈现。
其中,将待呈现的文件划分为多个文件块,其中相邻的文件块的内容部分重叠的步骤具体为:
按照预定的文件块大小将文件划分为多个文件块,其中后一文件块的前1/N区域的文件内容与前一文件块的后1/N区域的文件内容相同;N为预定的常数。
其中,若当前呈现的显示区域位于第一文件块的预定区域,则将第一文件块移出内存并将与第一文件块相邻的文件块载入内存并呈现的步骤包括:
若当前呈现的显示区域位于第一文件块的前1/M区域时,则将第一文件块移出内存并将前一文件块载入内存并呈现;
若当前呈现的显示区域位于第一文件块的后1/L区域时,则将第一文件块移出内存并将后一文件块载入内存并呈现;
其中1/N大于或等于1/M+1/L。
其中,判断当前呈现的显示区域是否位于第一文件块的预定区域包括:
判断用户输入的光标位置是否位于第一文件块的预定区域。
其中,文件为可编辑的文件;
若光标位置位于第一文件块的预定区域,在将第一文件块移出内存并将与第一文件块相邻的文件块载入内存并呈现之前,该方法进一步包括:
判断第一文件块的文件内容是否发生改变;
若第一文件块的文件内容发生改变,则提示用户是否保存第一文件块发生改变的文件内容;
接收用户输入的指示保存或指示放弃保存的指令;
并根据用户输入的指示保存的指令对第一文件块发生改变的文件内容进行保存,或者根据用户输入的指示放弃保存的指令恢复第一文件块的原始内容。
其中,对第一文件块发生改变的文件内容进行保存的步骤具体为:
在待呈现的文件的同目录下创建一个空白的临时文件;
将待呈现的文件从文件开头到第一文件块在待呈现的文件中的起始位置之间的未载入内存的第一文本内容写入临时文件;
将第一文件块发生改变的文件内容写入临时文件,以使第一文件块发生改变的文件内容与第一文本内容在临时文件中依次衔接;
将待呈现的文件从第一文件块在待呈现的文件中的结束位置到文件末尾之间的未载入内存的第二文本内容写入临时文件,以使第二文本内容与第一文件块发生改变的文件内容在临时文件中依次衔接;
记录待呈现的文件的文件名后删除待呈现的文件;
以所述待呈现的文件的文件名命名临时文件。
为解决上述技术问题,本发明还提供了一种文件呈现装置,包括:
划分模块,用于将待呈现的文件划分为多个文件块,其中相邻的文件块的内容部分重叠;
呈现模块,用于将第一文件块载入内存中,并呈现第一文件块,第一文件块为当前需要呈现的文件块;
第一判断模块,用于判断当前呈现的显示区域是否位于第一文件块的预定区域;
切换模块,用于若当前呈现的显示区域位于第一文件块的预定区域,则将第一文件块移出内存并将与第一文件块相邻的文件块载入内存并呈现。
其中,划分模块用于按照预定的文件块大小将文件划分为多个文件块,其中后一文件块的前1/N区域的文件内容与前一文件块的后1/N区域的文件内容相同;N为预定的常数。
其中,切换模块用于:
若当前呈现的显示区域位于第一文件块的前1/M区域时,则将第一文件块移出内存并将前一文件块载入内存并呈现;
若当前呈现的显示区域位于第一文件块的后1/L区域时,则将第一文件块移出内存并将后一文件块载入内存并呈现;
其中1/N大于或等于1/M+1/L。
其中,第一判断模块用于判断用户输入的光标位置是否位于第一文件块的预定区域。
其中,文件为可编辑的文件;文件呈现装置进一步包括:
第二判断模块,用于若光标位置位于第一文件块的预定区域,在将第一文件块移出内存并将与第一文件块相邻的文件块载入内存并呈现之前,判断第一文件块的文件内容是否发生改变;
保存模块,用于若第一文件块的文件内容发生改变,则
提示用户是否保存第一文件块发生改变的文件内容;
接收用户输入的指示保存或指示放弃保存的指令;
并根据用户输入的指示保存的指令对第一文件块发生改变的文件内容进行保存,或者根据用户输入的指示放弃保存的指令恢复第一文件块的原始内容。
其中,保存模块用于:
在待呈现的文件的同目录下创建一个空白的临时文件;
将待呈现的文件从文件开头到第一文件块在待呈现的文件中的起始位置之间的未载入内存的第一文本内容写入临时文件;
将第一文件块发生改变的文件内容写入临时文件,以使第一文件块发生改变的文件内容与第一文本内容在临时文件中依次衔接;
将待呈现的文件从第一文件块在待呈现的文件中的结束位置到文件末尾之间的未载入内存的第二文本内容写入临时文件,以使第二文本内容与第一文件块发生改变的文件内容在临时文件中依次衔接;
记录待呈现的文件的文件名后删除待呈现的文件;
以待呈现的文件的文件名命名临时文件。
通过上述方案,本发明的有益效果是:通过将待呈现的文件划分为多个文件块,并且只载入并呈现其中的一个文件块,能够有效地降低呈现大容量文件时对系统内存资源的占用,并且由于相邻的文件块存在部分重叠,可实现相邻文件块的平滑切换,提升用户体验。
附图说明
图1是现有技术中的呈现文件的方法示意图;
图2是本发明第一实施例的呈现文件的方法的流程示意图;
图3是本发明第一实施例中的文件划分的示意图;
图4是本发明第一实施例中的文件块载入内存的示意图;
图5是本发明第一实施例中的文件块切换的示意图;
图6是本发明第一实施例中的文件保存的流程示意图;
图7是本发明第一实施例的文件呈现装置的结构示意图。
具体实施方式
请参阅图2是本发明第一实施例的呈现文件的方法流程示意图。如图2所示,第一实施例的呈现文件的方法包括:
S10:将待呈现的文件划分为多个文件块,其中相邻的文件块的内容部分重叠。
在S10中,可以将待呈现的文件划分为容量相同的多个文件块,也可以是容量不相同的文件块,其中,容量相同是指所划分的多个文件块所占的文件区域大小相同,也即按照容量相同将文件划分为区域大小一致的多个文件块。
S11:将第一文件块载入内存中,并呈现第一文件块,第一文件块为当前需要呈现的文件块。
其中,本实施例中可以一次只载入一个文件块到内存中,并呈现给用户。在将一个文件块载入内存前,需要先将已载入内存、正呈现给用户的文件块移出内存。
S12:判断当前呈现的显示区域是否位于第一文件块的预定区域。
第一文件块可以有多个预定区域,当前呈现的显示区域位于不同的预定区域时执行不同的操作。
S13:若当前呈现的显示区域位于第一文件块的预定区域,则将第一文件块移出内存并将与第一文件块相邻的文件块载入内存并呈现。
在S13中,根据不同的预定区域,可以将与第一文件块相邻的位于第一文件之前的文件块载入内存并呈现,也可以将与第一文件块相邻的位于第一文件之前的文件块载入内存并呈现。如此可以在待呈现的文件容量太大时,能够在不对用户体验造成影响的前提下,有效地降低呈现大容量文件时对系统内存资源的占用。
在更具体的实施例中,在S10中,可以按照预定的文件块大小将文件划分为多个文件块,其中后一文件块的前1/N区域的文件内容与前一文件块的后1/N区域的文件内容相同;N为预定的常数。相邻的文件块的内容重叠部分的大小可以根据需要调整,但不宜过大,即预定的常数N不宜过小,以免待呈现的文件划分为多个文本块的效率过低。例如,后一文件块的前2/3区域的文件内容与前一文件块的后2/3区域的文件内容相同,以保证在文件块与文件块之间进行切换时能够实现平滑过渡。具体地,在划分一个新的文件块时,只需保持前一个文件块的区域大小不变,向后平移1/3区域面积即可得到新文件块的文件区域。如图3所示,保持文件区域大小不变,依图中粗箭头的方向在文件块n的基础上向后平移1/3区域,即得到文件块n+1。文件块n和文件块n+1有2/3区域重叠,具体为,文件块n的后2/3区域与文件块n+1的前2/3区域的文件内容相同。如此由于相邻的文件块存在部分重叠,可实现相邻文件块的平滑切换,提升用户体验。
在S11中,一次只载入一个文件块到内存中,并呈现给用户。在将一个文件块载入内存前,需要先将已载入内存、正呈现给用户的文件块移出内存。如图4所示,待呈现的文件划分为n个区域大小相同的文件块,n为正整数。要将文件块2载入内存并呈现给用户时,需要先将原来已载入内存的文件块1移出内存。
若文件为可编辑的文件,则当前呈现的显示区域可以是用户输入的光标位置。即在S12中,判断用户输入的光标位置是否位于第一文件块的预定区域。其中,用户输入的光标位置即表示用户执行触摸屏或按键操作的位置,而按键操作可以包括进行文件编辑的相关按键,如按上下左右的方向键,以及按pageup或pagedown的按键等。当用户对已载入内存的文件块进行按键操作或触摸屏操作时,会在接收到按键键值的同时检测光标当前位置。
每个文件块预先划分为不同的区域范围,待呈现的文件块的预定区域指的是针对已载入内存的文件块划分的不同区域范围中相对比较靠近相邻文件块的某一区域范围。预定区域的大小可以根据需要设置,在本实施例中,若当前呈现的显示区域位于第一文件块的前1/M区域时,则将第一文件块移出内存并将前一文件块载入内存并呈现;若当前呈现的显示区域位于第一文件块的后1/L区域时,则将第一文件块移出内存并将后一文件块载入内存并呈现。第一文件块的前1/M区域和第一文件块的后1/L区域都是第一文件块的预定区域,其中1/N大于或等于1/M+1/L。具体地,如果定义区域A为将待呈现的文件块切换至前一文件块的预定区域,区域B为将待呈现的文件块切换至后一文件块的预定区域,区域C为相邻文件块的重叠区域,区域S为单次导致光标可移动的最大范围。则区域A、区域B均应大于或等于区域S,以免由于光标移动范围超出当前文件块容纳范围,而导致切换文件块后出现文件光标定位失准的问题;但区域A、区域B的范围不宜过大,以免因不会触发切换文件块的区域太小,而陷入需要频繁切换文件块的窘境。区域C需大于或等于区域A+区域B,以免在切换至新的文件块后会出现光标位于新文件块的A区域或B区域内的情况;但区域C也不宜过大,否则易造成文件块划分效率过低。具体地,例如若将待呈现的文件块的整个区域设定为1,则区域A、区域B可以取如下值:1/10、1/8、1/6、1/4、1/3等,相对应的区域C则取为1/5、1/4、1/3、1/2、2/3等,只需满足区域A、区域B均大于或等于区域S,以及区域C大于或等于区域A+区域B即可。可见在本实施例中,预定区域与单次按键导致光标可移动的最大范围相关,而单次按键导致光标可移动的最大范围根据按键类型的不同而有所不同。一般来说,由于按键PageUp、PageDown移动范围较大,如一次可移动十几行,单次按键导致光标可移动的最大范围的大小往往由按键PageUp、PageDown单次可移动光标的范围决定。例如,在显示滚动条的情况下每页可显示15行代码,由于按键PageUp、PageDown单次将光标移动一页的范围,此时可将S定为大致15行代码的区域。
举例来说,在本发明实施例中,优选地,一个文件块可以划分为三部分:前1/3区域、中间1/3区域以及后1/3区域,预定区域是指待呈现的文件块的前1/3区域或后1/3区域(即此时M=L=3)。若光标位于待呈现的文件块的前1/3区域时,则将待呈现的文件块移出内存并将前一文件块载入内存并呈现给用户;若光标位于待编辑的文件块的后1/3区域时,则将待呈现的文件块移出内存并将后一文件块载入内存并呈现给用户。若文件为可编辑的文件,如图5所示,X表示光标,当前文件块即为已载入内存的待呈现的文件块。用户进行按键操作,即对当前文件块进行编辑时,如果光标X位于当前文件块的前1/3区域时,则将当前文件块移出内存,并将前一文件块载入内存并呈现给用户;如果光标X位于当前文件块的后1/3区域时,则将当前文件块移出内存,并将后一文件块载入内存并呈现给用户。在切换文件块之前,记录光标X的当前位置及文件块切换所导致的光标X的偏移量;在文件块切换完成后,依据此前记录的光标X的位置及光标X的偏移量恢复光标X在文件中的位置,以使得切换前后光标在整个文件中所处的位置保持不变。这样在用户看来,文件块切换前后光标位置并没有发生任何改变,从而确保用户在从当前文件块切换至前一文件块或后一文件块时能够获得与一次性将文件全文载入内存的方案完全相同的用户体验。
在S12中,若光标位置位于第一文件块的预定区域,在将第一文件块移出内存并将与第一文件块相邻的文件块载入内存并呈现之前,判断第一文件块的文件内容是否发生改变。若第一文件块的文件内容发生改变,则提示用户是否保存第一文件块发生改变的文件内容。接收用户输入的指示保存或指示放弃保存的指令;并根据用户输入的指示保存的指令对第一文件块发生改变的文件内容进行保存,或者根据用户输入的指示放弃保存的指令恢复第一文件块的原始内容。
在本发明实施例中,用户对当前文件所作的一切修改都是针对当前已载入内存的待呈现的文件块进行的,因此只需用当前已载入内存的待呈现的文件块的文件内容覆盖掉原文件对应区域的文件内容即可完成对文件全文的保存。这就要求必须保证已载入内存的待呈现的文件块在被修改后与尚未载入内存的文件部分在进行拼接时不能发生任何错位,否则会导致文件信息的丢失。因此需要在保存文件时能够准确定位当前载入内存的文件块在原文件中所对应区域的边界。
当将待呈现的文件块载入内存时,会记录待呈现的文件块的起始位置(StartPosition)和结束位置(Stop Position)。如图5所示,当前文件块即为已载入内存的待呈现的文件块。起始位置为当前文件块起点在文件全文中所处的位置,即文件指针从文件开头移动到当前文件块起点所产生的偏移量。结束位置为当前文件块终点在文件全文中所处的位置,即文件指针从文件开头移动到当前文件块终点所产生的偏移量。在保存文件时,通过调用此前记录的起始位置和结束位置,对当前文件块在原文件中对应区域的边界进行准确定位,再以当前文件块的文件内容覆盖掉原文件中对应区域的文件内容,即可完成对大容量文件的保存。
在本发明实施例中,如图6所示,对第一文件块发生改变的文件内容进行保存包括:
S140:在待呈现的文件的同目录下创建一个空白的临时文件。
S141:将待呈现的文件从文件开头到第一文件块在待呈现的文件中的起始位置之间的未载入内存的第一文本内容写入临时文件。
S142:将第一文件块发生改变的文件内容写入临时文件,以使第一文件块发生改变的文件内容与第一文本内容在临时文件中依次衔接。
S143:将待呈现的文件从第一文件块在待呈现的文件中的结束位置到文件末尾之间的未载入内存的第二文本内容写入临时文件,以使第二文本内容与第一文件块发生改变的文本内容在临时文件中依次衔接。
例如,若第一文件块发生改变的文件内容被全部删除,则保存时意味着第一文件块发生改变的文本内容为空,文件从文件开头到起始位置之间的未载入内存的第一文本内容会与文件从结束位置到文件末尾之间的未载入内存的第二文本内容直接衔接在一起,保存完毕后起始位置与结束位置会重合为一个点。
S144:记录待呈现的文件的文件名后删除待呈现的文件。
S145:以上述待呈现的文件的文件名命名临时文件。
至此,完成对大容量文件的保存操作。这就使得已载入内存的待呈现的文件块在被修改后与尚未载入内存的文件部分在进行拼接时不会发生任何错位,也不会造成文本信息的丢失。
在本发明实施例中,通过将待呈现的文件划分为多个文件块,其中相邻的文件块的内容部分重叠;将第一文件块载入内存中,并呈现第一文件块,第一文件块为当前需要呈现的文件块;判断当前呈现的显示区域是否位于第一文件块的预定区域;若当前呈现的显示区域位于第一文件块的预定区域,则将第一文件块移出内存并将与第一文件块相邻的文件块载入内存并呈现,能够在不对用户体验造成影响的前提下,有效地降低呈现大容量文本文件时对系统内存资源的占用。
请参阅图7,图7是本发明第一实施例的文件呈现装置的结构示意图。如图7所示,文件呈现装置10包括划分模块11、呈现模块12、第一判断模块13、切换模块14、第二判断模块15以及保存模块16。
在本发明实施例中,划分模块11用于将待呈现的文件划分为多个文件块,其中相邻的文件块的内容部分重叠。呈现模块12与划分模块11连接,用于将第一文件块载入内存中,并呈现第一文件块,第一文件块为当前需要呈现的文件块。第一判断模块13与呈现模块12连接,用于判断当前呈现的显示区域是否位于第一文件块的预定区域。切换模块14与第一判断模块13连接,用于若当前呈现的显示区域位于第一文件块的预定区域,则将第一文件块移出内存并将与第一文件块相邻的文件块载入内存并呈现。第二判断模块15与切换模块14连接,用于若光标位置位于第一文件块的预定区域,在将第一文件块移出内存并将与第一文件块相邻的文件块载入内存并呈现之前,判断第一文件块的文件内容是否发生改变。保存模块16与第二判断模块15连接,用于若第一文件块的文件内容发生改变,则:提示用户是否保存第一文件块发生改变的文件内容;接收用户输入的指示保存或指示放弃保存的指令,并根据用户输入的指示保存的指令对第一文件块发生改变的文件内容进行保存,或者根据用户输入的指示放弃保存的指令恢复第一文件块的原始内容。
举例来说,在本发明实施例中,划分模块11可以将待呈现的文件划分为容量相同的多个文件块,也可以是容量不相同的文件块。其中,容量相同是指所划分的多个文件块所占的文件区域大小相同,也即按照容量相同将文件划分为区域大小一致的多个文件块。
举例来说,划分模块11也按照预定的文件块大小将文件划分为多个文件块,其中后一文件块的前1/N区域的文件内容与前一文件块的后1/N区域的文件内容相同;N为预定的常数。划分模块1将文件划分为多个文件块,相邻的文件块的内容重叠部分的大小可以根据需要调整,但不宜过大,以免文件划分为多个文件块的效率过低。优选地,N可以为3/2,则后一文件块的前2/3区域的文件内容与前一文件块的后2/3区域的文件内容相同。具体地,在划分一个新的文件块时,只需保持前一个文件块的文本区域大小不变,向后平移1/3区域面积即可得到新文件块的文件区域。如此由于相邻的文件块存在部分重叠,可实现相邻文件块的平滑切换,提升用户体验。
在本发明实施例中,若文件为可编辑的文件,则当前呈现的显示区域可以是用户输入的光标位置。第一判断模块13用于判断用户输入的光标位置是否位于第一文件块的预定区域。其中,用户输入的光标位置即表示用户执行触摸屏或按键操作的位置,而按键操作可以包括进行文件编辑的相关按键,如按上下左右的方向键,以及按pageup或pagedown的按键等。当用户对已载入内存的文件块进行按键操作或触摸屏操作时,会在接收到按键键值的同时检测光标当前位置。预定区域的大小可以根据需要设置,在本实施例中,若当前呈现的显示区域位于第一文件块的前1/M区域时,则将第一文件块移出内存并将前一文件块载入内存并呈现;若当前呈现的显示区域位于第一文件块的后1/L区域时,则将第一文件块移出内存并将后一文件块载入内存并呈现。第一文件块的前1/M区域和第一文件块的后1/L区域都是第一文件块的预定区域,其中1/N大于或等于1/M+1/L。具体地,如果定义区域A为将待编辑的文件块切换至前一文件块的预定区域,区域B为将待编辑的文件块切换至后一文件块的预定区域,区域C为相邻文件块的重叠区域,区域S为单次导致光标可移动的最大范围。则区域A、区域B均应大于或等于区域S,以免由于光标移动范围超出当前文件块容纳范围,而导致切换文件块后出现文件光标定位失准的问题;但区域A、区域B的范围不宜过大,以免因不会触发切换文件块的区域太小,而陷入需要频繁切换文件块的窘境。区域C需大于或等于区域A+区域B,以免在切换至新的文件块后会出现光标位于新文件块的A区域或B区域内的情况;但区域C也不宜过大,否则易造成文件块划分效率过低。具体地,例如若将待编辑的文件块的整个区域设定为1,则区域A、区域B可以取如下值:1/10、1/8、1/6、1/4、1/3等,相对应的区域C则取为1/5、1/4、1/3、1/2、2/3等,只需满足区域A、区域B均大于或等于区域S,以及区域C大于或等于区域A+区域B即可。可见在本实施例中,预定区域与单次按键导致光标可移动的最大范围相关,而单次按键导致光标可移动的最大范围根据按键类型的不同而有所不同。一般来说,由于按键PageUp、PageDown移动范围较大,如一次可移动十几行,单次按键导致光标可移动的最大范围的大小往往由按键PageUp、PageDown单次可移动光标的范围决定。例如,在显示滚动条的情况下每页可显示15行代码,由于按键PageUp、PageDown单次将光标移动一页的范围,此时可将S定为大致15行代码的区域。
举例来说,在本发明实施例中,优选地,一个文件块可以划分为三部分:前1/3区域、中间1/3区域以及后1/3区域,预定区域是指待呈现的文件块的前1/3区域或后1/3区域(此时M=L=3)。若光标位于待呈现的文件块的前1/3区域时,则将待呈现的文件块移出内存并将前一文件块载入内存并呈现给用户;若光标位于待呈现的文件块的后1/3区域时,则将待呈现的文件块移出内存并将后一文件块载入内存并呈现给用户。
若文件为可编辑的文件,若光标位置位于第一文件块的预定区域,在将第一文件块移出内存并将与第一文件块相邻的文件块载入内存并呈现之前,第二判断模块15判断第一文件块的文件内容是否发生改变。若第一文件块的文件内容发生改变,则保存模块16提示用户是否保存第一文件块发生改变的文件内容;接收用户输入的指示保存或指示放弃保存的指令;并根据用户输入的指示保存的指令对第一文件块发生改变的文件内容进行保存,或者根据用户输入的指示放弃保存的指令恢复第一文件块的原始内容。
在本发明实施例中,用户对当前文件所作的一切修改都是针对当前已载入内存的待呈现的文件块进行的,因此只需用当前已载入内存的待呈现的文件块的文件内容覆盖掉原文件对应区域的文件内容即可完成对文件全文的保存。这就要求必须保证已载入内存的待呈现的文件块在被修改后与尚未载入内存的文件部分在进行拼接时不能发生任何错位,否则会导致文件信息的丢失。因此需要在保存文件时能够准确定位当前载入内存的文件块在原文件中所对应区域的边界。当将待呈现的文件块载入内存时,保存模块16会记录待呈现的文件块的起始位置(Start Position)和结束位置(Stop Position)。起始位置为当前文件块起点在文件全文中所处的位置,即文件指针从文件开头移动到当前文件块起点所产生的偏移量。结束位置为当前文件块终点在文件全文中所处的位置,即文件指针从文件开头移动到当前文件块终点所产生的偏移量。在保存文件时,通过调用此前记录的起始位置和结束位置,对当前文件块在原文件中对应区域的边界进行准确定位,再以当前文件块的文件内容覆盖掉原文件中对应区域的文件内容,即可完成对大容量文件的保存。这样在用户看来,文件块切换前后光标位置并没有发生任何改变,从而确保用户在从当前文件块切换至前一文件块或后一文件块时能够获得与一次性将文件全文载入内存的方案完全相同的用户体验。
保存模块16对第一文件块发生改变的文件内容进行保存时,在待呈现的文件的同目录下创建一个空白的临时文件;将待呈现的文件从文件开头到第一文件块在待呈现的文件中的起始位置之间的未载入内存的第一文本内容写入临时文件;将第一文件块发生改变的文件内容写入临时文件,以使第一文件块发生改变的文件内容与第一文本内容在临时文件中依次衔接;将待呈现的文件从第一文件块在待呈现的文件中的结束位置到文件末尾之间的未载入内存的第二文本内容写入临时文件,以使第二文本内容与第一文件块发生改变的文件内容在临时文件中依次衔接;记录待呈现的文件的文件名后删除待呈现的文件;以待呈现的文件的文件名命名临时文件。至此,保存模块16完成对大容量文件的保存操作,这就使得已载入内存的待呈现的文件块在被修改后与尚未载入内存的文件部分在进行拼接时不会发生任何错位,也不会造成文本信息的丢失。
保存模块16完成对第一文件块发生改变的的文件内容进行保存的操作后,呈现模块12执行将待呈现的文本块移出内存并将与之相邻的文本块载入内存的操作,以进行后续的文本编辑操作。
综上所述,通过将待呈现的文件划分为多个文件块,其中相邻的文件块的内容部分重叠;将第一文件块载入内存中,并呈现第一文件块,第一文件块为当前需要呈现的文件块;判断当前呈现的显示区域是否位于第一文件块的预定区域;若当前呈现的显示区域位于第一文件块的预定区域,则将第一文件块移出内存并将与第一文件块相邻的文件块载入内存并呈现,能够在不对用户体验造成影响的前提下,有效地降低呈现大容量文本文件时对系统内存资源的占用。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (12)
1.一种呈现文件的方法,其特征在于,所述方法包括:
将待呈现的文件沿预设方向划分为多个文件块,其中相邻的文件块的内容部分重叠;
将第一文件块载入内存中,并呈现所述第一文件块,所述第一文件块为当前需要呈现的文件块;
判断当前呈现的显示区域是否位于所述第一文件块的预定区域;
若当前呈现的显示区域位于所述第一文件块的前1/M区域时,则将所述第一文件块移出所述内存并将前一文件块载入所述内存并呈现,将前一文件块作为第一文件块;
若当前呈现的显示区域位于所述第一文件块的后1/L区域时,则将所述第一文件块移出所述内存并将后一文件块载入所述内存并呈现;
其中,第一文件块和前一文件块的重叠区域包括第一文件块的前1/M区域,第一文件块和后一文件块的重叠区域包括第一文件块的后1/L区域,所述1/M为所述第一文件块的前一部分区域在所述第一文件块的所占比例,所述1/L为所述第一文件块的后一部分区域在所述第一文件块的所占比例。
2.根据权利要求1所述的方法,其特征在于,所述将待呈现的文件划分为多个文件块,其中相邻的文件块的内容部分重叠的步骤具体为:
按照预定的文件块大小将所述文件划分为多个文件块,其中后一文件块的前1/N区域的文件内容与前一文件块的后1/N区域的文件内容相同;
其中,所述1/N为所述文件块与相邻文件块的重叠区域在所述文件块的所占比例,所述N为预定的常数。
3.根据权利要求2所述的方法,其特征在于,
其中1/N大于或等于1/M+1/L。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述判断当前呈现的显示区域是否位于所述第一文件块的预定区域包括:
判断用户输入的光标位置是否位于所述第一文件块的预定区域。
5.根据权利要求4所述的方法,其特征在于,所述文件为可编辑的文件;
所述若当前呈现的显示区域位于所述第一文件块的前1/M区域时,则将所述第一文件块移出所述内存并将前一文件块载入所述内存并呈现,将前一文件块作为第一文件块;以及若当前呈现的显示区域位于所述第一文件块的后1/L区域时,则将所述第一文件块移出所述内存并将后一文件块载入所述内存并呈现之前,所述方法进一步包括:
判断所述第一文件块的文件内容是否发生改变;
若所述第一文件块的文件内容发生改变,则提示用户是否保存所述第一文件块发生改变的文件内容;
接收用户输入的指示保存或指示放弃保存的指令;
并根据用户输入的指示保存的指令对所述第一文件块发生改变的文件内容进行保存,或者根据用户输入的指示放弃保存的指令恢复所述第一文件块的原始内容。
6.根据权利要求5所述的方法,其特征在于,所述对所述第一文件块发生改变的文件内容进行保存的步骤具体为:
在所述待呈现的文件的同目录下创建一个空白的临时文件;
将所述待呈现的文件从文件开头到所述第一文件块在所述待呈现的文件中的起始位置之间的未载入内存的第一文本内容写入所述临时文件;
将所述第一文件块发生改变的文件内容写入所述临时文件,以使所述第一文件块发生改变的文件内容与所述第一文本内容在所述临时文件中依次衔接;
将所述待呈现的文件从所述第一文件块在所述待呈现的文件中的结束位置到文件末尾之间的未载入内存的第二文本内容写入所述临时文件,以使所述第二文本内容与所述第一文件块发生改变的文件内容在所述临时文件中依次衔接;
记录所述待呈现的文件的文件名后删除所述待呈现的文件;
以所述待呈现的文件的文件名命名所述临时文件。
7.一种文件呈现装置,其特征在于,所述文件呈现装置包括:
划分模块,用于将待呈现的文件沿预设方向划分为多个文件块,其中相邻的文件块的内容部分重叠;
呈现模块,用于将第一文件块载入内存中,并呈现所述第一文件块,所述第一文件块为当前需要呈现的文件块;
第一判断模块,用于判断当前呈现的显示区域是否位于所述第一文件块的预定区域;
切换模块,用于若当前呈现的显示区域位于所述第一文件块的前1/M区域时,则将所述第一文件块移出所述内存并将前一文件块载入所述内存并呈现,将前一文件块作为第一文件块;
若当前呈现的显示区域位于所述第一文件块的后1/L区域时,则将所述第一文件块移出所述内存并将后一文件块载入所述内存并呈现;
其中,第一文件块和前一文件块的重叠区域包括第一文件块的前1/M区域,第一文件块和后一文件块的重叠区域包括第一文件块的后1/L区域,所述1/M为所述第一文件块的前一部分区域在所述第一文件块的所占比例,所述1/L为所述第一文件块的后一部分区域在所述第一文件块的所占比例。
8.根据权利要求7所述的文件呈现装置,其特征在于,所述划分模块用于按照预定的文件块大小将所述文件划分为多个文件块,其中后一文件块的前1/N区域的文件内容与前一文件块的后1/N区域的文件内容相同;
其中,所述1/N为所述文件块与相邻文件块的重叠区域在所述文件块的所占比例,所述N为预定的常数。
9.根据权利要求8所述的文件呈现装置,其特征在于,
其中1/N大于或等于1/M+1/L。
10.根据权利要求7-9任一项所述的文件呈现装置,其特征在于,所述第一判断模块用于判断用户输入的光标位置是否位于所述第一文件块的预定区域。
11.根据权利要求10所述的文件呈现装置,其特征在于,所述文件为可编辑的文件;所述文件呈现装置进一步包括:
第二判断模块,用于若当前呈现的显示区域位于所述第一文件块的前1/M区域时,则将所述第一文件块移出所述内存并将前一文件块载入所述内存并呈现,将前一文件块作为第一文件块;以及若当前呈现的显示区域位于所述第一文件块的后1/L区域时,则将所述第一文件块移出所述内存并将后一文件块载入所述内存并呈现之前,判断所述第一文件块的文件内容是否发生改变;
保存模块,用于若所述第一文件块的文件内容发生改变,则
提示用户是否保存所述第一文件块发生改变的文件内容;
接收用户输入的指示保存或指示放弃保存的指令;
并根据用户输入的指示保存的指令对所述第一文件块发生改变的文件内容进行保存,或者根据用户输入的指示放弃保存的指令恢复所述第一文件块的原始内容。
12.根据权利要求11所述的文件呈现装置,其特征在于,所述保存模块用于:
在所述待呈现的文件的同目录下创建一个空白的临时文件;
将所述待呈现的文件从文件开头到所述第一文件块在所述待呈现的文件中的起始位置之间的未载入内存的第一文本内容写入所述临时文件;
将所述第一文件块发生改变的文件内容写入所述临时文件,以使所述第一文件块发生改变的文件内容与所述第一文本内容在所述临时文件中依次衔接;
将所述待呈现的文件从所述第一文件块在所述待呈现的文件中的结束位置到文件末尾之间的未载入内存的第二文本内容写入所述临时文件,以使所述第二文本内容与所述第一文件块发生改变的文件内容在所述临时文件中依次衔接;
记录所述待呈现的文件的文件名后删除所述待呈现的文件;
以所述待呈现的文件的文件名命名所述临时文件。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410398501.XA CN104199856B (zh) | 2014-08-13 | 2014-08-13 | 呈现文件的方法和文件呈现装置 |
PCT/CN2015/086875 WO2016023509A1 (zh) | 2014-08-13 | 2015-08-13 | 呈现文件的方法和文件呈现装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410398501.XA CN104199856B (zh) | 2014-08-13 | 2014-08-13 | 呈现文件的方法和文件呈现装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104199856A CN104199856A (zh) | 2014-12-10 |
CN104199856B true CN104199856B (zh) | 2021-04-06 |
Family
ID=52085149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410398501.XA Active CN104199856B (zh) | 2014-08-13 | 2014-08-13 | 呈现文件的方法和文件呈现装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104199856B (zh) |
WO (1) | WO2016023509A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104199856B (zh) * | 2014-08-13 | 2021-04-06 | 北京配天技术有限公司 | 呈现文件的方法和文件呈现装置 |
CN107924397B (zh) * | 2015-12-31 | 2021-12-03 | 深圳配天智能技术研究院有限公司 | 一种文件编辑方法和文件编辑器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1928871A (zh) * | 2006-09-07 | 2007-03-14 | 北京优纳科技有限公司 | 大容量快速图像浏览系统 |
CN1953540A (zh) * | 2005-10-21 | 2007-04-25 | 深圳Tcl新技术有限公司 | 通过电视的动态用户操作界面实现快速搜索的方法 |
CN101059949A (zh) * | 2007-04-03 | 2007-10-24 | 广东威创日新电子有限公司 | 海量图像数据的压缩、存储和显示方法 |
CN101127578A (zh) * | 2007-09-14 | 2008-02-20 | 广东威创日新电子有限公司 | 一种处理海量数据的方法及系统 |
CN101763407A (zh) * | 2009-11-19 | 2010-06-30 | 青岛海信移动通信技术股份有限公司 | 一种基于Brew平台的txt文件阅读方法及其阅读器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2829845B1 (fr) * | 2001-09-17 | 2003-11-28 | Pierre Schweitzer | Procede pour la visualisation d'un document sur un equipement portatif |
CN102567285A (zh) * | 2010-12-13 | 2012-07-11 | 汉王科技股份有限公司 | 一种文档加载的方法及装置 |
CN102768662B (zh) * | 2011-05-05 | 2016-02-10 | 阿里巴巴集团控股有限公司 | 一种加载图片的方法和装置 |
CN103176952A (zh) * | 2011-12-20 | 2013-06-26 | 北大方正集团有限公司 | 文档显示方法和装置 |
CN104199856B (zh) * | 2014-08-13 | 2021-04-06 | 北京配天技术有限公司 | 呈现文件的方法和文件呈现装置 |
-
2014
- 2014-08-13 CN CN201410398501.XA patent/CN104199856B/zh active Active
-
2015
- 2015-08-13 WO PCT/CN2015/086875 patent/WO2016023509A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1953540A (zh) * | 2005-10-21 | 2007-04-25 | 深圳Tcl新技术有限公司 | 通过电视的动态用户操作界面实现快速搜索的方法 |
CN1928871A (zh) * | 2006-09-07 | 2007-03-14 | 北京优纳科技有限公司 | 大容量快速图像浏览系统 |
CN101059949A (zh) * | 2007-04-03 | 2007-10-24 | 广东威创日新电子有限公司 | 海量图像数据的压缩、存储和显示方法 |
CN101127578A (zh) * | 2007-09-14 | 2008-02-20 | 广东威创日新电子有限公司 | 一种处理海量数据的方法及系统 |
CN101763407A (zh) * | 2009-11-19 | 2010-06-30 | 青岛海信移动通信技术股份有限公司 | 一种基于Brew平台的txt文件阅读方法及其阅读器 |
Also Published As
Publication number | Publication date |
---|---|
CN104199856A (zh) | 2014-12-10 |
WO2016023509A1 (zh) | 2016-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101556435B1 (ko) | 데이터베이스 백업본 복구 방법 및 그 장치 | |
EP2854380A1 (en) | Method for quickly operating file of smart phone and smart phone | |
CN102981765A (zh) | 一种文本处理方法及终端 | |
EP4171018A1 (en) | Subtitle generation method and apparatus, and device and storage medium | |
CN104407787A (zh) | 一种终端 | |
WO2017113317A1 (zh) | 一种文件编辑方法和文件编辑器 | |
CN107665134A (zh) | 页面组件加载方法、装置、介质及终端设备 | |
WO2016188261A1 (zh) | 多文件夹切换方法、装置和计算机存储介质 | |
CN106598926B (zh) | 操作撤销方法及装置 | |
CN104199856B (zh) | 呈现文件的方法和文件呈现装置 | |
CN104731364A (zh) | 一种输入法及输入法系统 | |
CN104834749A (zh) | 一种移动终端与pc端的文件同步方法及同步系统 | |
CN114942863B (zh) | 一种级联快照处理方法、装置、设备及存储介质 | |
CN104808959A (zh) | 一种信息处理方法及电子设备 | |
CN105808519A (zh) | 一种文档显示方法及装置 | |
US20140337595A1 (en) | Information processing apparatus, and information processing method | |
CN105320395A (zh) | 一种图标整理方法、装置及终端 | |
CN112052655B (zh) | 一种页面处理的方法、装置、计算机存储介质及终端 | |
CN106294571A (zh) | 桌面文件夹的合并方法和装置 | |
CN113778038B (zh) | 一种分散控制系统离线组态对比方法和系统 | |
CN108459713B (zh) | 页面选择的方法、装置、终端设备及存储介质 | |
JP2000148562A (ja) | データバックアップ方法及びこれを利用したデータバックアップ装置並びにデータバックアッププログラムを記録したコンピュータ読み取り可能な記録媒体 | |
CN105159804A (zh) | 一种数据块处理的方法、装置及设备 | |
CN106774156B (zh) | 数值控制装置 | |
CN108810265A (zh) | 一种终端的文本标记方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |