Tengo un proceso de Java que abre un archivo usando un FileReader. ¿Cómo puedo evitar que otro proceso (Java) abra este archivo, o al menos notificar a ese segundo proceso que el archivo ya está abierto? ¿Esto automáticamente hace que el segundo proceso obtenga una excepción si el archivo está abierto (lo que resuelve mi problema) o tengo que abrirlo explícitamente en el primer proceso con algún tipo de indicador o argumento?
Para aclarar:
Tengo una aplicación Java que enumera una carpeta y abre cada archivo en la lista para procesarlo. Procesa cada archivo tras otro. El procesamiento de cada archivo consiste en leerlo y hacer unos cálculos basados en el contenido y demora unos 2 minutos. También tengo otra aplicación Java que hace lo mismo, pero escribe en el archivo. Lo que quiero es poder ejecutar estas aplicaciones al mismo tiempo para que el escenario sea así. ReadApp enumera la carpeta y busca los archivos A, B, C. Abre el archivo A e inicia la lectura. WriteApp enumera la carpeta y encuentra los archivos A, B, C.Abre el archivo A, ve que está abierto (por una excepción o de cualquier manera) y va al archivo B. ReadApp finaliza el archivo A y continúa hasta B. Ve que está abierto y continúa en C. Es crucial que WriteApp no t escriba mientras ReadApp está leyendo el mismo archivo o viceversa. Son procesos diferentes.