簡體   English   中英

Java:優化文件定界符以提高子文檔的讀取速度

[英]Java: Optimizing file delimiters for the read speed of subdocuments

說我有一個包含很多子文檔的文件

//file.txt

BEGIN_FILE_1
loremipsumloremipsumloremipsum
loremipsumloremipsum
END_FILE_1

BEGIN_FILE_2
cupcakeipsum
cupcakeipsumcupcakeipsum
END_FILE_2

可以使用哪種定界(或某些替代策略),以使所述子文檔的讀取速度快(即,解釋該定界速度快),但更重要的是,子文檔的編寫速度也很快。 請注意,容器文件將非常大(大約100MB)。

我打算使用FileWriter寫入文件。

謝謝!

通常,最佳策略取決於上下文-存在多少個子文檔,每個文檔僅被寫入一次或更新/修改,每個子文檔的大小是否已知/至少每個子文檔的最大大小,以哪種操作為准?每次寫操作大約將進行10次讀取,或者相反)?

假設將添加和讀取但未修改子文檔,最佳策略可能是使用標頭指定文件數,並在文件內每個文件的開始/結束行。 類似於-第一行始終為標頭,然后行1..N FILE1,N + 1..M FILE2,依此類推:

NUMBER_OF_FILES個FILE1_NAME FILE1_START FILE1_END FILE2_NAME FILE2_START FILE2_END

這將允許僅通過解析標頭並直接讀取該文件而不是通過文檔搜索文件來讀取任何文件的內容,而寫入僅需要修改標頭並寫入文件末尾即可。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM