2009-11-30 71 views
0

格式我有在外部文件是我將如何從外部文件中刪除數據?

name 
tel no 
mob no 
address 

從GUI我想刪除聯繫人這在上面使用我的刪除按鈕的格式。

我已完成導出方法,並想知道是否刪除會類似,這裏是我的導出代碼。

{ 
    FileOutputStream file; 
    PrintStream out; 

    try { file = new FileOutputStream("../files/example.buab", true); 
      out = new PrintStream(file);  
      out.println(txtname.getText());  
      out.println(txtnum.getText());  
      out.println(txtmob.getText()); 
      out.println(txtadd1.getText()); 

      System.err.println ("");      
      out.close();    
     }    
      catch (Exception e) 
       {     
       System.err.println ("Error in writing to file");   
       } 
    } 
+2

我只是警告:在java.io中使用相對路徑的東西是一個非常糟糕的主意。 – BalusC

+0

http://stackoverflow.com/questions/1815576/the-buttons-are-working-but-they-are-interacting-with-the-compiler-not-the-gui和http://stackoverflow.com/questions/1785741/address-book-next-and-previous-buttons /,是一些我認爲與大學相關的文章。 – Nettogrof

回答

0

最簡單的方法是完全讀取它,跳過應該刪除的行,然後將其完全寫回到文件,從而覆蓋原來的文件。但這也是效率最低的方法。爲獲得最佳效果,您需要在模型中更多地組織數據。

爲什麼不使用(嵌入式)數據庫,以便您可以繼續使用簡單的SQL DELETE語句?

1

你真的必須立即刪除文件上的聯繫人嗎?

通常你會做這樣的事情:

  1. 導入文件內容到模型中,婦女聯盟聯繫對象的列表
  2. 應用所有的編輯模式(變化值,添加聯繫人,刪除聯繫人)
  3. 保存您的編輯,iaw用您的模型覆蓋文件。

非常非常容易然後試圖刪除文件的單行...

+0

就像他有ArrayLists包含信息,我同意這是一個更簡單的方法來做到這一點 – Nettogrof

0

我假設你真的要使用一個文件,並在數據庫中不能使用的表。

首先,您必須爲每個聯繫人分配一個ID,以便您可以指向某個聯繫人,該ID必須是唯一的,除了它可以是一切。

爲什麼不將該文件組織爲一個XML?這是你的規格允許的嗎?