gpt4 book ai didi

java - 当另一个线程在创建它时另一个线程正在解析它时,解析 xml 文件时文件异常过早结束

转载 作者:行者123 更新时间:2023-11-30 07:31:55 26 4
gpt4 key购买 nike

我有一个 java 线程 A,它不断轮询文件夹 RESULTFOLDER 并检查其中是否存在一些新文件。
现在文件由另一台机器上运行的其他程序发布到 RESULTFOLDER 中。现在发布的文件都是 xml 文件(只有 xml)。所以在任何时候 RESULTFOLDEr 只能保存 xml 文件。
现在我的线程 A 不断轮询 RESULTFOLDER 并一次解析一个 xml 文件,然后将其删除。
现在有时发生的情况是,如果线程 A 在另一个程序发布文件 A 时尝试读取和解析文件 A。在这种情况下,我在解析文件时遇到异常。说文件提前结束。
我该如何解决这个问题?

我认为一种方法是检查文件创建的日期时间并确保文件至少存在 1 分钟左右。但我不认为 java 提供了这样的 API。我该如何解决这个问题?

最佳答案

你可以把.xml文件写到文件夹里,然后再写一个单独的控制文件,之后再写。控制文件的字节数为零,扩展名不同,例如 .ctl,但名称的第一部分相同。

当轮询结果文件夹的线程找到 .ctl 文件时,它知道打开扩展名为 .xml 的同名文件是安全的。

这种方法还有一个额外的好处,即即使在另一台计算机上进行写作任务,它也能正常工作。

关于java - 当另一个线程在创建它时另一个线程正在解析它时,解析 xml 文件时文件异常过早结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6946613/

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