0

私が次のコードを持っている場合:

private PrintWriter m_Writer;
m_Writer = new PrintWriter(new FileWriter(k_LoginHistoryFile));

名前が。であるサーバー上のローカルファイルに書き込んでいますk_LoginHistoryFile
今、私のプログラムがこのファイルへの書き込みを実行しているときに、各書き込みの間にすべてのファイルコンテンツを削除するにはどうすればよいですか?
最終的には最初に最新の更新情報があり、最後に最新の情報がないファイルには書き込みたくないので、重要だと思います。

前もって感謝します

4

2 に答える 2

7

この式:

new FileWriter(k_LoginHistoryFile)

ファイルが存在する場合は切り捨てられます。ファイルの先頭を上書きするだけではありません。このコードが実行される頻度は明確ではありませんが、実行されるたびに、新しいファイルを開始します(そして古い内容を効果的に削除します)。

于 2012-05-21T18:02:47.993 に答える
1

最終的には最初に最新の更新情報があり、最後に最新の情報がないファイルには書き込みたくないので、重要だと思います。

実行中の出力ファイルを保持したい場合(そしてファイルを開いたままにすることができない場合)、次のコンストラクターを検討してください:FileWriter(String、boolean)

ブール値がtrueの場合、更新された情報ファイルの最後にあります。

于 2012-05-21T18:07:46.257 に答える