簡體   English   中英

在java運行時檢查文件存在

[英]check file existance in runtime in java

我想檢查文件是否存在於所需位置。

我正在從 java 創建一個文本文件,例如 abc.txt。 我將在其他一些程序中使用這個文件,比如一個 CAD 程序來生成繪圖。 CAD 過程完成后,它會生成一個帶有一些擴展名的文件,例如“.cad”。 這個繪圖生成需要一些時間。

我將在另一個程序中使用相同的“.cad”文件,假設一個分析軟件來分析生成的圖形。

現在我的問題是,我想檢查是否生成了“.cad”文件。 由於 .cad 文件的生成需要時間,如果沒有這個文件,我將無法繼續進行,即我無法將此文件提供給下一步(即分析軟件)。

那么,在java中有什么方法可以讓我在一段時間內檢查.cad文件的存在(假設120秒)。 如果我找到了該文件,則只能繼續下一步。

我搜索了方法file.exists()但它只檢查一次。

請給我一些提示。 謝謝大家!

我猜你可以使用守護進程在后台制作你的任務,希望它對朋友有所幫助!

public class DaemonFolder extends Thread {

@SuppressWarnings("deprecation") // stop();
public static void main(String[] args) {
    System.out.println("Pulsar enter para finalizar");
    DaemonFolder daemonn= new DaemonFolder();
    Scanner finalize= new Scanner(System.in);
    finalize.nextLine();
    daemonn.stop();
    finalize.close();
    System.out.println("Programa finalizado!");
}

public DaemonFolder() {
    setDaemon(true); // Daemon threads in Java are like a service providers for other threads or objects running in the same process as the daemon thread
    start();
}

@Override
public void run() {
    while (true) {
        try {
            sleep(5000);
            if (new File("anonymous.txt").exists()){
            System.out.println("exists");
            //DO SOMETHING
            } else {
                System.out.println("not exists");
            }               
        } catch (Exception e){
            e.printStackTrace();
        }
    }
}
}

例如,您可以編寫一個從 0 到 119 計數的 for 循環,然后進行是否存在檢查,如果成功則調用下一步,如果不成功則調用Thread.sleep(1000)在下一次檢查之前等待一秒鍾。

或者你可以例如時間表TimerTaskTimer要運行的每個第二,並在TimerTask執行存在檢查,如果最大時間已過去中止或者如果檢查順利辦下一個步驟,中止。

有很多方法可以做到,這只是其中的兩種。

您需要使用您的方法和 Thread.sleep(120000) 創建循環。 速度像這樣:

while(true) {
  if (file.exists()) {
   break;
  } else {
   Thread.sleep(120000);
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM