FileReader を使用してファイルを開く Java プロセスがあります。別の (Java) プロセスがこのファイルを開くのを防ぐにはどうすればよいですか? または、少なくともファイルが既に開かれていることを 2 番目のプロセスに通知するにはどうすればよいですか? これにより、ファイルが開いている場合に2番目のプロセスに自動的に例外が発生します(これで問題が解決します)か、最初のプロセスで何らかのフラグまたは引数を使用して明示的に開く必要がありますか?
明確にするために:
フォルダーをリストし、リスト内の各ファイルを開いて処理するJavaアプリがあります。各ファイルを次々に処理します。各ファイルの処理は、それを読み取り、内容に基づいていくつかの計算を行うことで構成され、約 2 分かかります。同じことを行う別のJavaアプリもありますが、代わりにファイルに書き込みます。私が望むのは、これらのアプリを同時に実行できるようにすることで、シナリオは次のようになります。ReadApp はフォルダを一覧表示し、ファイル A、B、C を検索します。ファイル A を開いて読み取りを開始します。WriteApp はフォルダを一覧表示し、ファイル A、B、C を見つけます。ファイル A を開き、(例外または何らかの方法で) 開いていることを確認し、ファイル B に移動します。ReadApp はファイル A を終了し、B に進みます。はオープンであり、C に続きます。WriteApp がそうでないことが重要です。ReadApp が同じファイルを読み取っている間に書き込みを行ったり、その逆を行ったりします。それらは異なるプロセスです。