2013-04-11 46 views
0

的读取速度优化文件分隔符说我有在它的Java:对于子文档

//file.txt 

BEGIN_FILE_1 
loremipsumloremipsumloremipsum 
loremipsumloremipsum 
END_FILE_1 

BEGIN_FILE_2 
cupcakeipsum 
cupcakeipsumcupcakeipsum 
END_FILE_2 

什么样的划界(或某些alterate策略)可以使用,这样使得该读取有许多子文档文件所述子文档是快速的(即,解释分界很快),但是更重要的是,子文档的写入是快速的。请注意,容器文件将非常大(100MB左右)。

我打算使用FileWriter来编写文件。

谢谢!

回答

0

一般来说,最佳的策略取决于上下文 - 有多少子文件是存在的,将每个文件只能写入一次的或更新/修改,是众所周知的每个子/至少最大尺寸已知的每个子文档的尺寸操作盛行(对于写操作,大约有10次读取,或相反)?

假设子文档将被添加和读取但未被修改,最佳策略可以是使用指定文件数量的标题,以及每个文件在文件内开始/结束的行。像什么 - 第一行总是标题,然后线1..N FILE1,N + 1..M FILE2,依此类推:

NUMBER_OF_FILES FILE1_NAME FILE1_START FILE1_END FILE2_NAME FILE2_START FILE2_END

这将允许读取的任何内容文件仅通过解析头文件并直接读取此文件而不是通过文档搜索文件,写入操作只需修改头文件并写入文件末尾即可。

如果文件被修改/覆盖但具有固定大小,则此策略可能仍然有用,因为覆盖操作会很快