有人可以帮助我。我有一个应用程序创建一个文件,由外部应用程序处理。我需要以某种方式延迟我的代码,直到有一个从外部应用程序创建的文件。但是我有问题发现任何会导致Java延迟的事情。在java应用程序中延迟处理
在此先感谢
有人可以帮助我。我有一个应用程序创建一个文件,由外部应用程序处理。我需要以某种方式延迟我的代码,直到有一个从外部应用程序创建的文件。但是我有问题发现任何会导致Java延迟的事情。在java应用程序中延迟处理
在此先感谢
相当简陋和粗糙,但在技术上,Thread.sleep()
导致延迟。
你可以尝试
while(!file.exists());
按照评论,简单,但原油:
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
来实现。
您可以使用Java文件API并等待文件修改事件,而不是使用计时器轮询文件更改。下面是文档: http://docs.oracle.com/javase/tutorial/essential/io/notification.html
,这里是一个小例子: http://docs.oracle.com/javase/tutorial/essential/io/examples/WatchDir.java
简单,但是,原油:'File.isFile()'和'的Thread.sleep()'? – hmjd 2012-03-27 08:49:41