Mam proces Java, który otwiera plik za pomocą FileReader. Jak mogę zapobiec otwarciu tego pliku przez inny proces (Java) lub przynajmniej powiadomić ten drugi proces, że plik jest już otwarty? Czy to automatycznie powoduje, że drugi proces otrzymuje wyjątek, jeśli plik jest otwarty (co rozwiązuje mój problem), czy też muszę jawnie otworzyć go w pierwszym procesie z jakąś flagą lub argumentem?
W celu wyjaśnienia:
Mam aplikację Java, która wyświetla folder i otwiera każdy plik na liście w celu jego przetworzenia. Przetwarza każdy plik po drugim. Przetwarzanie każdego pliku polega na przeczytaniu go i wykonaniu pewnych obliczeń na podstawie zawartości i trwa około 2 minut. Mam też inną aplikację Java, która robi to samo, ale zamiast tego zapisuje w pliku. Chcę mieć możliwość uruchamiania tych aplikacji w tym samym czasie, więc scenariusz wygląda tak. ReadApp wyświetla listę folderów i znajduje pliki A, B, C. Otwiera plik A i rozpoczyna odczytywanie. WriteApp wyświetla listę folderów i znajduje pliki A, B, C. Otwiera plik A, widzi, że jest otwarty (przez wyjątek lub w jakikolwiek inny sposób) i przechodzi do pliku B. ReadApp kończy plik A i kontynuuje do B. jest otwarta i kontynuuje C. Ważne jest, aby WriteApp nie t pisz, gdy ReadApp czyta ten sam plik lub odwrotnie. To są różne procesy.