我有一个Java进程,使用FileReader打开一个文件。如何防止另一个(Java)进程打开此文件,或者至少通知第二个进程文件已经被打开?这会自动使得第二个进程在文件已经被打开时出现异常(从而解决了我的问题),还是我需要在第一个进程中显式地使用某种标志或参数来打开它?
澄清一下:
我有一个Java应用程序,列出一个文件夹并打开列表中的每个文件进行处理。它按顺序处理每个文件。每个文件的处理包括读取它并根据内容进行一些计算,大约需要2分钟。我还有另一个Java应用程序,它执行相同的操作,但是写入文件而不是读取文件。我想要能够同时运行这些应用程序,因此场景如下:ReadApp列出文件夹并找到文件A、B、C。它打开文件A并开始读取。WriteApp列出文件夹并找到文件A、B、C。它打开文件A,看到它已经打开(通过异常或任何其他方式),然后转到文件B。ReadApp完成文件A并继续到B。它看到它是打开的并继续到C。关键是当ReadApp正在读取同一文件或反之亦然时,WriteApp不要写入。它们是不同的进程。