2013-06-23 58 views
0

我一直在使用Java中的文件。我知道讀寫文件的基本知識。以下是我試圖編寫的代碼使用不同的方法寫入同一個文件

void qlm(String option,String initiate,String ii,String file_path,String source,List destination){ //,String paths,String src){ 
    String [] Ln = {"B","C","D"}; 
    int count =1, counter=1,seq=1; 
    try{ 
     System.out.println("Here: " +file_path); 
     PrintWriter pwr = new PrintWriter(new FileWriter(getHandleB()),true); 
     for(int i=0;i<Ln.length;i++){ 
      pwr.println("Sequence_Number" + "|" + "QLM_Operation" + "|" + "II_D" + "|" + "Val_D" + "|" + "List" + "|" + "Type" + "|" + "Status" + "|" + "Source" + "|" + "Destination"); 
      pwr.println(count + "|" + option + "|" + "DataK" + "|" + "Value" + "|" + Ln + "|" + "Null" + "|" + "Pending" + "|" + source + "|" + Ln[i]); 
      count++; 
     } 
     pwr.close(); 

getHandleB()是文件的路徑。這是在方法QLM進行(參數)

現在我想在同一個文件中寫入(路徑:getHandleB())從命名不同的方法手柄(參數)

的輸出這個函數應該寫入同一個文件而不刪除前面方法的內容。當我嘗試寫入文件時,它將刪除以前的內容並寫入新的內容。我怎樣才能避免這一點。我想要寫出所有方法的所有內容。感謝所有的幫助。

+0

@BheshGurung我看到了,我無法解決我的問題。所以我必須發佈它。謝謝。 –

+0

@MohammedIrfan然後下次仔細閱讀答案並查看與代碼的區別以避免發佈重複的問題。 –

+0

-1的問題。我的錯。我剛開始使用堆棧溢出。 :( –

回答

2

您不追加到文件。使用允許附加的FileWriter構造函數,其布爾值爲true作爲其第二個參數。

PrintWriter pwr = new PrintWriter(new FileWriter(getHandleB(), true),true); 

編輯
分離出在我的代碼,構造函數調用上面應該幫助你瞭解這是怎麼回事:

FileWriter fileWriter = new FileWriter(getHandleB(), true); 
PrintWriter pwr = new PrintWriter(fileWriter, true); 

所以你看,是的,有兩個布爾參數在這裏使用,但他們正在使用不同的構造函數。

+0

你比我快。這發生在發佈答案之前搜索鏈接:http://docs.oracle.com/javase/6/docs/api/java/io/FileWriter.html#FileWriter%28java。 io.File,%20boolean%29 –

+0

你的速度更快:( – Maroun

+0

無論如何,這個問題應該是並且將被重複關閉 –

1

您需要使用appropriate FileWriter constructortrue作爲第二個參數。

默認情況下,FileWriter會截斷它打開的文件。

+0

1+偉大的思想家都認爲一樣。 –

相關問題