Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用TimerTask每隔5秒用Java编写一个文件_Java_File_Timertask_Seconds - Fatal编程技术网

使用TimerTask每隔5秒用Java编写一个文件

使用TimerTask每隔5秒用Java编写一个文件,java,file,timertask,seconds,Java,File,Timertask,Seconds,我试图每5秒向一个文件追加一些字符串,但我遇到了一些问题 我的Java代码是: File file = new File("MyFile.txt"); FileWriter outFile = new FileWriter(file); final PrintWriter out = new PrintWriter(outFile); new Timer().scheduleAtFixedRate(new TimerTask() { public void run() {

我试图每5秒向一个文件追加一些字符串,但我遇到了一些问题

我的Java代码是:

File file = new File("MyFile.txt");

FileWriter outFile = new FileWriter(file);

final PrintWriter out = new PrintWriter(outFile);

new Timer().scheduleAtFixedRate(new TimerTask()
{
    public void run()
    {
        out.println("Test string...");
    }, 0, 5 * 1000);
}

out.close();
但我注意到我的文件总是空的:它不写任何东西

我想我的问题在TimerTask类中,但我无法解决它


是否有更好的方法每N秒编写一个文件?

这就是您的代码吗?它将不起作用,因为您在调度计时器任务后立即关闭输出流。当任务运行时,输出流已经关闭,无法再写入


在向输出流写入数据之前,请确保不要关闭输出流。

这是您的代码吗?它将不起作用,因为您在调度计时器任务后立即关闭输出流。当任务运行时,输出流已经关闭,无法再写入


在向输出流写入数据之前,请确保不要关闭输出流。

您关闭了输出流

我还将使用ApacheCommons io FileUtils,它使处理文件io变得更加容易


您关闭了OutputStream

我还将使用ApacheCommons io FileUtils,它使处理文件io变得更加容易


计时器在不同的线程中运行,因此首先关闭文件写入程序。

计时器在不同的线程中运行,因此首先关闭文件写入程序。

谢谢您的回答,现在我了解了问题所在,但我已经尝试过不关闭文件或在其他时间关闭它,而我的文件是空的…您可以在run方法中打开文件并附加到它。或者使用finalize方法但不推荐谢谢您的回答,现在我知道问题出在哪里了,但我尝试过不关闭文件或在其他时间关闭它,而我的文件是空的…您可以在run方法中打开文件并附加到它。或者使用finalize方法,但不推荐使用