2016-11-27 86 views
0

我將對象數組存儲在文本文件中
示例;對象=員工。工作人員由ID,姓名等組成。文本文件中的每行都是StaffID,StaffName等。將對象數組寫入正確位置的文本文件

到目前爲止,每個員工ID都只是行號,所以添加新的員工資料時,ID就是以前的ID +1並且可以寫入文件的末尾。

但是,我改變了ID的結構。它現在由(扇區* 1000)+下一個數字組成。例如。在第二部分工作的5名員工擁有ID 2001,2002,2003,2004,2005。

現在我的問題出現在二分查找完成後。事先,增加新員工很容易,而且仍然按正確順序排列。但是,現在我需要一種能夠將新配置文件寫入文本文件中正確位置的方法。

這裏有一些片段:

String staffData = staffID, staffName, staffAddress, staffMed; 

這被添加到員工陣列,然後使用下面的代碼寫的:

try 
    { 
     FileWriter writer = new FileWriter(Filename, true); 
     BufferedWriter bWriter = new BufferedWriter(writer); 
     for(int i =0;i<freeLocation;i++) 
     { 

      String staffString = StaffArray[i].toString(); 

      bWriter.write(currentPositionStaffProfile); 
      bWriter.newLine(); 
     } 
     bWriter.close(); 
    } 

文本文件看起來像這樣

1001, John, Address, n/a 
4001, Smith, Address, n/a 

我想知道,如何能夠添加一個職員配置文件誰可以寫在正確的行之間這樣工作人員的ID就會按升序排列,而不僅僅是文件的末尾。

謝謝

+0

什麼是您的數據的近似最大大小? –

回答

0

您應該加載文件在內存中的數據存儲一樣的HashMap或TreeMap和插入新對象給它。

然後寫入文件遍歷TreeMap(給出鍵的排序順序)或從HashMap獲取鍵並對它們進行排序。

因此,您將在此HashMap/TreeMap上執行所有插入/更新/刪除操作,並在需要時按照排序順序將數據寫入文件。這樣你就不用擔心寫什麼行(就像你當前/建議的解決方案那樣)。