Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:优化文件分隔符以提高子文档的读取速度_Java_Performance_File_Optimization - Fatal编程技术网

Java:优化文件分隔符以提高子文档的读取速度

Java:优化文件分隔符以提高子文档的读取速度,java,performance,file,optimization,Java,Performance,File,Optimization,假设我有一个包含许多子文档的文件 //file.txt BEGIN_FILE_1 loremipsumloremipsumloremipsum loremipsumloremipsum END_FILE_1 BEGIN_FILE_2 cupcakeipsum cupcakeipsumcupcakeipsum END_FILE_2 可以使用什么样的定界(或某种交替策略),以使所述子文档的读取速度快(即解释定界速度快),但更重要的是,子文档的编写速度快。请注意,容器文件将非常大(100MB左右

假设我有一个包含许多子文档的文件

//file.txt

BEGIN_FILE_1
loremipsumloremipsumloremipsum
loremipsumloremipsum
END_FILE_1

BEGIN_FILE_2
cupcakeipsum
cupcakeipsumcupcakeipsum
END_FILE_2
可以使用什么样的定界(或某种交替策略),以使所述子文档的读取速度快(即解释定界速度快),但更重要的是,子文档的编写速度快。请注意,容器文件将非常大(100MB左右)

我计划使用FileWriter来编写文件


谢谢

通常,最佳策略取决于上下文-有多少子文档,每个文档只写一次还是更新/修改一次,每个子文档的大小已知/至少每个子文档的最大大小已知,哪个操作占优势(对于每个写操作,大约有10次读取,或者相反)

假设子文档将被添加和读取,但不会被修改,最佳策略可能是使用头指定文件的数量,以及每个文件在文件中开始/结束的行。类似于-第一行始终是标题,然后是第1..N行文件1、第N+1..M行文件2,依此类推:

文件数量文件1名称文件1开始文件1结束文件2名称文件2开始文件2结束

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

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