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