我有一个使用 FileReader 打开文件的 Java 进程。如何防止另一个(Java)进程打开此文件,或者至少通知第二个进程该文件已打开?如果文件打开(这解决了我的问题),这是否会自动使第二个进程出现异常,还是我必须在第一个进程中使用某种标志或参数显式打开它?
澄清:
我有一个 Java 应用程序,它列出了一个文件夹并打开列表中的每个文件进行处理。它一个接一个地处理每个文件。每个文件的处理包括读取它并根据内容进行一些计算,大约需要 2 分钟。我还有另一个 Java 应用程序,它做同样的事情,而是写在文件上。我想要的是能够同时运行这些应用程序,所以场景是这样的。ReadApp 列出文件夹并找到文件 A、B、C。它打开文件 A 并开始读取。WriteApp 列出文件夹并找到文件 A、B、C。它打开文件 A,看到它是打开的(通过异常或任何方式)并转到文件 B。ReadApp 完成文件 A 并继续到 B。它看到它是开放的,并继续到 C。WriteApp 不这样做是至关重要的 t 在 ReadApp 读取同一文件时写入,反之亦然。它们是不同的过程。