http://bbs.csdn.net/topics/390483868/
如果要刪除任意數(shù)據(jù)的話,一般都要經(jīng)過先檢索、后處理的過程。
????如何提高檢索速度是關(guān)鍵。
????其中可以為文件中的每行數(shù)據(jù)建立索引逆日,如何建立索引,就要參考索引的使用方法了萄凤。
?可以將文件中的每行數(shù)據(jù)提取出來屏富,放到指定的存儲結(jié)構(gòu)中,如鏈表蛙卤、數(shù)組狠半、Map等。
????使用Java中支持這些結(jié)構(gòu)的API來處理每行數(shù)據(jù)颤难,處理完畢后神年,
????再講存儲結(jié)構(gòu)中的內(nèi)容寫回文件中。
不要真正的刪除行嗤,因?yàn)閯h除沒有什么好的方法已日,必須把整個(gè)文件再復(fù)制一次。
使用標(biāo)記:例如把這一行的前多少個(gè)字節(jié)數(shù)據(jù)修改成標(biāo)記的值栅屏,讀取每一行時(shí)判斷是否有刪除的標(biāo)記飘千。
很多工具都這樣做堂鲜,當(dāng)?shù)嚼绨胍购髥右粋€(gè)線程把文件中被標(biāo)記為刪除的部分真正的刪除。