Ho un processo Java che apre un file utilizzando un FileReader. Come posso impedire a un altro processo (Java) di aprire questo file o almeno notificare al secondo processo che il file è già aperto? Questo fa sì che il secondo processo ottenga automaticamente un'eccezione se il file è aperto (il che risolve il mio problema) o devo aprirlo esplicitamente nel primo processo con una sorta di flag o argomento?
Chiarire:
Ho un'app Java che elenca una cartella e apre ogni file nell'elenco per elaborarlo. Elabora ogni file dopo l'altro. L'elaborazione di ogni file consiste nel leggerlo e fare alcuni calcoli in base al contenuto e richiede circa 2 minuti. Ho anche un'altra app Java che fa la stessa cosa ma invece scrive sul file. Quello che voglio è essere in grado di eseguire queste app allo stesso tempo, quindi lo scenario va così. ReadApp elenca la cartella e trova i file A, B, C. Apre il file A e avvia la lettura. WriteApp elenca la cartella e trova i file A, B, C.Apre il file A, vede che è aperto (per un'eccezione o in qualsiasi modo) e va al file B. ReadApp termina il file A e continua su B.Vede che è aperto e continua a C. È fondamentale che WriteApp non lo faccia t scrivere mentre ReadApp sta leggendo lo stesso file o viceversa. Sono processi diversi.