我正在研究一個小程序,它需要我從一個文件中讀取一組參數,對其中的三個類執行一些操作(所有3個類繼承相同的父類)。每個操作之後,該方法應該打印一行在一個輸出文件中類似方法2 方法的方法1個 輸出3 1等如何在多個類中使用相同的printwriter(java)
的的輸出2的方法1個 輸出1的該
輸出1想法是所有3個類的所有方法都應該在同一個文件中打印,順序不重要。
我已經使用這個代碼在每個方法的末尾/ if塊
if/method {
.... do something
text ="output of something";
try(PrintWriter out = new PrintWriter("outputfile.txt") ){
out.println(text);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}//end if/method
的代碼確實寫的東西到該文件,但它始終會覆蓋前行。因此,例如,不是有12行「東西」,我只有1個。
我該如何解決這個問題?我懷疑這是因爲我每次都製作一個新的PrintWriter,並想過在其他地方聲明它並將其調用給每個類。這會起作用嗎?我怎麼去把它叫給每個班?
這是我第一次使用文件。謝謝。
是的,問題是你創造的所有三個類的新PrintWriter。而不是做這個,你必須把它作爲參數傳遞。例如:編寫處理方法以接受PrintWriter作爲參數,然後在主方法中創建一個PrintWriter實例,然後將三個方法調用放入其try塊中。 –
@BalázsNemes,如果寫操作不是併發和及時分離的(即每個類可以寫而不管其他三個類正在做什麼),爲每個類創建自己的打印作家實際上是很好的。 –
@ M.Prokhorov好的..那麼我該如何避免覆蓋? –