有人可以幫助我。我有一個應用程序創建一個文件,由外部應用程序處理。我需要以某種方式延遲我的代碼,直到有一個從外部應用程序創建的文件。但是我有問題發現任何會導致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