java应用程序中的延迟处理



有人能帮我吗。我有一个应用程序,它创建了一个要由外部应用程序处理的文件。我需要以某种方式延迟我的代码,直到有一个从外部应用程序创建的文件。但我在查找任何导致Java延迟的内容时遇到了问题。

提前感谢

相当初级和粗糙,但从技术上讲,Thread.sleep()会导致延迟。

根据注释,简单但粗糙:

File f = new File("your-file.txt");
for (;;)
{
    try
    {
        if (f.isFile())
        {
            break;
        }
    }
    catch (Exception e)
    {
        e.printStackTrace();
        // Or some other appropriate
        // handling of the exception.
    }
    try
    {
        Thread.currentThread().sleep(1000);
    }
    catch (InterruptedException e)
    {
        Thread.currentThread().interrupt();
    }
}

延迟我的代码等待,直到有一个文件创建

当发生某些事情时,最好激活代码中的方法。要做到这一点,我建议使用单独的Thread,运行并检查条件,然后调用您的应用程序。方法(如果需要)。对于应用程序。对于GUI,这通常可以使用Swing Timer来实现,但我相信也可以使用java.util.Timer来实现。

您可以尝试

while(!file.exists());

您可以使用Java文件API并等待文件修改事件,而不是使用计时器轮询文件更改。以下是文档:http://docs.oracle.com/javase/tutorial/essential/io/notification.html

这里有一个小例子:http://docs.oracle.com/javase/tutorial/essential/io/examples/WatchDir.java

最新更新