У меня есть процесс Java, который открывает файл с помощью FileReader. Как я могу запретить другому (Java) процессу открывать этот файл или хотя бы уведомить о том, что второй процесс уже открыт? Это автоматически приводит к тому, что второй процесс получает исключение, если файл открыт (что решает мою проблему) или я должен явно открыть его в первом процессе с каким-то флагом или аргументом?
Чтобы уточнить:
У меня есть приложение Java, в котором перечислены папки и открывается каждый файл в списке для его обработки. Он обрабатывает каждый файл за другим. Обработка каждого файла состоит в его чтении и выполнении некоторых вычислений на основе содержимого, и это занимает около 2 минут. У меня также есть другое приложение Java, которое делает то же самое, но вместо этого записывает в файл. Я хочу, чтобы иметь возможность запускать эти приложения одновременно, поэтому сценарий будет выглядеть следующим образом. ReadApp перечисляет папку и находит файлы A, B, C. Открывает файл A и начинает чтение. WriteApp перечисляет папку и находит файлы A, B, C. Открывает файл A, видит, что это открыто (исключение или любым способом) и переходит в файл B. ReadApp заканчивает файл A и продолжает B. Он видит, что это открыто и продолжается до C. Очень важно, чтобы WriteApp не записывал, в то время как ReadApp читает тот же файл или наоборот. Это разные процессы.