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