有人能帮我吗。我有一个应用程序,它创建了一个要由外部应用程序处理的文件。我需要以某种方式延迟我的代码,直到有一个从外部应用程序创建的文件。但我在查找任何导致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