1

5秒ごとにファイルに出力する簡単なクラスを作成したいと思います。

私のコードは次のとおりです。

public class FileLoggerTask implements Runnable
{
    private PrintWriter printWriter = null;
    private boolean isActive = true;

    public FileLoggerTask(PrintWriter printWriter)
    {
        this.printWriter = printWriter;
    }

    public void run()
    {
        while(isActive)
        {
            printWriter.println("Test line");

            try
            {
                Thread.sleep(5000);
            }

            catch(InterruptedException e)
            {
                System.out.println(e);
            }
        }
    }

    void closeTask()
    {
        isActive = false;
    }
}

そして、私が書いた1つのボタンのリスナーで:

File file = new File("TestFile.txt");
FileWriter fileWriter = new FileWriter(file);
PrintWriter printWriter = new PrintWriter(fileWriter);
FileLoggerTask fileLoggerTask = new FileLoggerTask(printWriter);
Thread thread = new Thread(fileLoggerTask);

そして、私が書いた別のボタンのリスナーで:

fileLoggerTask.closeTask();
printWriter.close();

私の問題は、5秒ごとにファイルに「テスト行」を書き込みますが、改行を追加しないことです。printWriter.println()またはprintWriter.println( "\ n")を追加しようとしましたが、機能せず、理由がわかりません。

何か提案はありますか?

どうもありがとうございます。

4

2 に答える 2

5

改行がないことをどのように知っていますか?Windows でテキスト エディタを使用しているが、Unix でコードを実行している場合、それらが表示されない可能性があるためです。

試しましたprintWriter.println("\n\r")か?

于 2012-09-25T15:04:23.463 に答える
0

これを試して:

String newLine = System.getProperty("line.separator");
于 2012-09-25T15:04:29.437 に答える