Como posso bloquear um arquivo usando java (se possível)
Eu tenho um processo Java que abre um arquivo usando um FileReader. Como posso evitar que outro processo (Java) abra esse arquivo ou, pelo menos, notifique esse segundo processo de que o arquivo já está aberto? Isso faz automaticamente o segundo processo obter uma exceção se o arquivo estiver aberto (o que resolve meu problema) ou eu tenho que explicitamente abri-lo no primeiro processo com algum tipo de sinalizador ou argumento?
Esclarecer:Eu tenho um aplicativo Java que lista uma pasta e abre cada arquivo na listagem para processá-lo. Ele processa cada arquivo após o outro. O processamento de cada arquivo consiste em lê-lo e fazer alguns cálculos com base no conteúdo e leva cerca de 2 minutos. Eu também tenho outro aplicativo Java que faz a mesma coisa, mas em vez disso escreve no arquivo. O que eu quero é poder rodar esses aplicativos ao mesmo tempo, então o cenário é assim. ReadApp lista a pasta e encontra os arquivos A, B, C. Ela abre o arquivo A e inicia a leitura. WriteApp lista a pasta e localiza os arquivos A, B, C. Ela abre o arquivo A, vê que está aberto (por uma exceção ou qualquer outra forma) e vai para o arquivo B. ReadApp conclui o arquivo A e continua para B. Ele o vê está aberto e continua em C. É crucial que WriteApp não escreva enquanto o ReadApp estiver lendo o mesmo arquivo ou vice-versa. Eles são processos diferentes.