有人可以帮我解决这个问题吗?
我有一个方法,它在运行时会生成许多文件。这些文件可能需要几秒钟到一分钟的时间才能生成,所以每次我尝试查看文件夹中的文件数量时,不要只等待 2 分钟,然后每秒检查最多 2 分钟的文件数上去。
如果文件数在那 2 分钟内没有增加,我只想继续该方法的其余部分,而不是抛出异常并退出。
问题是它第一次运行时new File(generatedFilesFolder).listFiles().length;
抛出空指针异常,因为此时 generateFilesFolder 为空。
我可以在 generate.next() 之后进行此检查,但随后我将不得不睡觉,这将破坏我试图归档的内容。
请问谁能告诉我更好的方法?我尝试将 int 更改为 Integer ,但它仍然引发异常。
int actualFilesGenerated = new File(generatedFilesFolder).listFiles().length;
generate.next();
// / Now I want to give each file 2 minutes to generate otherwise catch and
// carry on with rest of method.
try {
int currentFilesGenerated = new File(generatedFilesFolder).listFiles().length;
int counter = 0;
while ((currentFilesGenerated < actualFilesGenerated) & counter < 120) {
Thread.sleep(1000);
currentFilesGenerated = new File(generatedFilesFolder).listFiles().length;
counter++;
System.out.println("actualFilesGenerated: " + actualFilesGenerated
+ " currentFilesGenerated: " + currentFilesGenerated + "counter: "
+ counter);
}
} catch (InterruptedException e1) {
e1.printStackTrace();
}
///rest of method here