2013-04-11 64 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

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

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