gpt4 book ai didi

java - 如何在一个 Java 进程中创建和写入文件并从另一个进程中读取文件而不会遇到读/写问题(Java/EE)

转载 作者:行者123 更新时间:2023-11-29 08:16:38 25 4
gpt4 key购买 nike

我的情况

我有一个处理 FTP 的进程和另一个处理电子邮件的进程。

当我完成 FTP 时,我想通过电子邮件发送成功通知。所以电子邮件进程正在监视一个新的文件 pr 配置文件进入一个特定的目录

FTP 进程创建适合电子邮件进程的文件,该文件或多或少是属性文件中的电子邮件列表。

我面临的问题是在创建文件并写入文件时。检测新文件并在写入文件之前或写入文件时读取它的电子邮件进程。因此它只访问空参数。虽然我可以在电子邮件流程之上 hibernate ,但这并不适用于所有情况,并且会阻碍其他已完成文件的人。

我可以用来做什么-创建一个在完全写入之前无法读取的属性文件- 或者创建一个带有锁的属性文件,如果需要可以从另一个进程解锁。

我有什么选择?

到目前为止:- 我曾尝试使用 apache commons 配置来设置属性,它创建了相同的旧读/写访问问题- 我创建了一个属性 =new 属性并使用存储方法来创建文件。即使这样,电子邮件进程也会在完成之前读取

仅供引用:电子邮件进程有 WatchDirectory 并在创建新文件时读取。

最佳答案

您需要对文件系统执行一个“原子”操作。用另一个文件名(例如 .tmpfoobar)写入文件,完成后关闭它并执行 File.renameTo() 将其移动到位。重命名是原子的。

关于java - 如何在一个 Java 进程中创建和写入文件并从另一个进程中读取文件而不会遇到读/写问题(Java/EE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4350295/

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