java - 在可运行线程中的文件中写入换行符

标签 java android multithreading printwriter

我想编写一个简单的类来每 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;
    }
}

然后在一个按钮的监听器中我写:

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") 但它不起作用,我不知道为什么。

你有什么建议吗?

非常感谢。

最佳答案

你怎么知道没有换行符?我问是因为如果您在 Windows 上使用某些文本编辑器但您的代码在 Unix 上运行,您可能看不到它们。

你试过 printWriter.println("\n\r") 了吗?

关于java - 在可运行线程中的文件中写入换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12585741/

相关文章:

java - 如何使用 eclipse IDE 运行 API 示例(已经有工作区)

java - 黑莓文件连接非法状态异常

java - Android RecyclerView.Adapter更改图标onClick

java - 如何从sql数据库获取唯一值

android - GSON:仅在已发布的应用程序中使用我的 JSONEntity 无法正确创建,使用 Android Studio 可以正常工作

Java nio服务端客户端异步

java - 为什么这个方法不打印它的文本? (java)

java - 组织从 PDF 中提取的图像

multithreading - Xamarin.IOS应用程序不断启动和完成许多线程

python - Python-在Google Colab中使用多线程播放音频