Comment puis-je verrouiller un fichier à l'aide de java (si possible)

J'ai un processus Java qui s'ouvre un fichier à l'aide d'un FileReader. Comment puis-je empêcher un autre (Java) processus à partir de l'ouverture de ce fichier, ou au moins informer que le deuxième processus que le fichier est déjà ouvert? Le fait automatiquement) prendre la deuxième processus d'obtenir une exception si le fichier est ouvert (ce qui résout mon problème) ou dois-je explicitement l'ouvrir dans le premier de ces processus avec une sorte de drapeau ou de l'argument?

À préciser:

J'ai une application Java qui contient un dossier et ouvre chaque fichier dans la liste pour les traiter. Il traite chaque fichier après l'autre. Le traitement de chaque fichier est constitué de le lire et de faire quelques calculs basés sur le contenu et il faut environ 2 minutes. J'ai aussi une autre application Java qui fait la même chose mais au lieu de cela écrit sur le fichier. Ce que je veux, c'est être en mesure d'exécuter ces applications en même temps si le scénario va comme ceci. ReadApp répertorie le dossier et recherche des fichiers A, B, C. Il ouvre Un fichier et commence la lecture. WriteApp répertorie le dossier et recherche des fichiers A, B, C. On ouvre Un fichier, voit qui est ouvert (par une exception ou d'une quelque manière que ce soit) et va au fichier B. ReadApp finitions fichier Un et continue à B. Il voit qu'il est ouvert et continue à C. Il est crucial que WriteApp ne pas écrire tout en ReadApp est la lecture du même fichier ou vice versa. Ils sont différents processus.

  • Voulez-vous dire par "processus" comme dans les processus de (deux machines virtuelles) ou du fil (même JVM). L'impact sur la réponse est d'une importance primordiale.
InformationsquelleAutor Paralife | 2008-09-24