私はファイルを修正することができる2〜3のプログラムを持っていますが、1つのプログラムがそれを使用している場合、他のものをブロックしたいと思います。私はこれで同期を使用することはできません。他の規定はありますか?Java:あるプログラムがそれを使用している場合、他のプログラムがファイルにアクセスするのをブロックする方法はありますか?
1
A
答えて
1
異なるアプリケーションでロックされているファイルは、Javaレベルで処理されていません。 OSレベルで処理する必要があります。異なるOSにはさまざまなソリューションがあります。
他のプログラムを使用している場合は、他のユーザーをブロックしたいと思います。
おそらく、すべてのリーダーとライターを除いて、書き込みロックが必要です。しかし、いくつかのプログラムを許可します。窓にはおそらくこのlinkの関心があります。
それは依存とてもプラットフォームですが、それをしようとするJavaコードです:
FileInputStream in = new FileInputStream(file);
try {
java.nio.channels.FileLock lock = in.getChannel().lock();
try {
Reader reader = new InputStreamReader(in, charset);
...
} finally {
lock.release();
}
} finally {
in.close();
}
+0
実際には、Java APIがあります:http://stackoverflow.com/a/128168/718590 – pkalinow
関連する問題
- 1. Cボタンを使用してボタンが内部にある場合、ボタンにプログラム的にアクセスする方法
- 2. 他のプレースホルダがある場合にIN()句でプレースホルダを使用する方法はありますか?ここ
- 3. プログラムが何をしているかを知る方法はありますか?
- 4. hrefにハッシュが含まれている場合にリンクをブロックする方法はありますか?
- 5. 他のブロックがどんなデザインパターンにも該当する場合は、他のブロックがある場合は、
- 6. JavaのSystem.out.println();プログラムがブロックされてttyに待ち時間があります
- 7. アドレス帳dbファイルにプログラムでアクセスする方法はありますか?
- 8. Javaプログラムを使用して、ある場所から別の場所にファイルをコピーする
- 9. スクロールするWebブラウザがプログラムで動作しない場合があります
- 10. tryブロックか "new"キーワードがJavaコードで使用されているか調べる方法はありますか?
- 11. DIVのコンテンツをプログラムでプログラムにエクスポートする方法はありますか?
- 12. ローカルブランチが10個ある場合、それらをリモートオリジンサーバーにプッシュする方法はありますか?
- 13. フォルダにあるすべてのファイルのタイトルを表示するコンボボックスがあるJavaプログラムを作成したい
- 14. 複数のメニューがある場合、メニューをプログラムで切り替えますか?
- 15. 他のコンポーネントがレンダリングされない場合にのみコンポーネントをレンダリングする方法はありますか?
- 16. プログラムにコンパイラを配置する方法はありますか?
- 17. OSにプログラム/パッケージがインストールされているかどうかを確認する方法はありますか?
- 18. 他の変数を参照する変数を変更する必要がありますか?私はこのプログラムがある場合
- 19. プログラムでプログラムにPythonでプロセスをアタッチする方法はありますか?
- 20. unordered_mapが使用されている場合のC++プログラムの実行方法
- 21. ++ varを使用する必要がある場合はありますか?
- 22. hitTestを使用して、それらがテーブル内にある場合、基礎となるビューを取得する方法はありますか?
- 23. GoLandデバッガがプログラムで実行されているかどうかを確認する方法はありますか?それは使用して、デバッガで実行している場合は、実行中のプログラムを検出することができますC#の場合
- 24. プログラムがDirectXファイルを探す場所をリダイレクトする方法はありますか?
- 25. 他のアプリが開いた場合、プログラムを起動する方法
- 26. Javaプログラムによって生成された一時ファイル(クリーンアップ)を削除する方法はありますか?
- 27. ファイルが既にダウンロードされている場合、URLから確認する方法はありますか?
- 28. コンピュータからSMSにプログラムでアクセスする方法はありますか?
- 29. javaにあるURLからそれを削除する必要がある場合は、パラメータをチェックするためのデフォルトクラスがありますか?
- 30. AMQP(RabbitMQ)を既に使用している場合、チャットにXMPP(またはその他のプロトコル)を使用する必要があります
あなたが実際には同じプログラムで別のプログラム、または別のスレッドを意味しますか? – khelwood
これはあなたのために機能しますか? http://stackoverflow.com/questions/128038/how-can-i-lock-a-file-using-java-if-possible – Jaydee
@ Jaydeeの提案は、私が通常使っていたものです。しかし、ドキュメントによれば、「ロックが実際に別のプログラムがロックされた領域のコンテンツにアクセスするのを防ぐかどうかは、システムに依存するため、不特定」です。これはあなたにとって問題ではないことを確認してください。 – Nando