gpt4 book ai didi

Java:扫描文件夹中特定文件的有效方法

转载 作者:行者123 更新时间:2023-12-02 00:41:18 24 4
gpt4 key购买 nike

我正在使用我的 Java 应用程序联系外部服务。

流程如下: ->我生成一个 XML 文件,并将其放入文件夹中,然后服务处理该文件并返回另一个具有相同名称且扩展名为 .out 的文件

现在,将文件放入文件夹后,我会开始循环,直到取回该文件,以便可以读取结果。

这是代码:

        fileName += ".out";
File f = new File(fileName);
do
{
f = new File(fileName);
} while (!f.exists());

response = readResponse(fileName); // got the response now read it

我的问题来了,我这样做是否正确,是否有更好/更有效的方法来等待文件?

一些信息:我在 WinXP 上运行我的应用程序,通常外部服务只需不到一秒的时间即可响应文件,我每天向此服务发送大约 200 个请求。包含结果文件的文件夹的路径始终相同。

欢迎所有建议。

感谢您的宝贵时间。

最佳答案

没有理由重新创建File对象。它仅代表文件位置,无论文件是否存在。另外,您可能不希望循环没有至少短暂的延迟,否则它只会最大化处理器,直到文件存在。您可能想要这样的东西:

File file = new File(filename);
while (!file.exists()) {
Thread.sleep(100);
}

编辑: Ingo 在评论中提出了一个很好的观点。该文件可能并不完全存在,因为它存在。保证其准备就绪的一种方法是让第一个进程在第一个文件完全写入后创建第二个文件。然后让 Java 程序检测第二个文件,将其删除,然后安全地读取第一个文件。

关于Java:扫描文件夹中特定文件的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5603820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com