私はファイルを修正することができる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. アドレス帳dbファイルにプログラムでアクセスする方法はありますか?
- 7. Javaプログラムを使用して、ある場所から別の場所にファイルをコピーする
- 8. スクロールするWebブラウザがプログラムで動作しない場合があります
- 9. tryブロックか "new"キーワードがJavaコードで使用されているか調べる方法はありますか?
- 10. ローカルブランチが10個ある場合、それらをリモートオリジンサーバーにプッシュする方法はありますか?
- 11. DIVのコンテンツをプログラムでプログラムにエクスポートする方法はありますか?
- 12. フォルダにあるすべてのファイルのタイトルを表示するコンボボックスがあるJavaプログラムを作成したい
- 13. 他のコンポーネントがレンダリングされない場合にのみコンポーネントをレンダリングする方法はありますか?
- 14. 複数のメニューがある場合、メニューをプログラムで切り替えますか?
- 15. 他の変数を参照する変数を変更する必要がありますか?私はこのプログラムがある場合
- 16. OSにプログラム/パッケージがインストールされているかどうかを確認する方法はありますか?
- 17. プログラムにコンパイラを配置する方法はありますか?
- 18. hitTestを使用して、それらがテーブル内にある場合、基礎となるビューを取得する方法はありますか?
- 19. 他のアプリが開いた場合、プログラムを起動する方法
- 20. ++ varを使用する必要がある場合はありますか?
- 21. ファイルが既にダウンロードされている場合、URLから確認する方法はありますか?
- 22. AMQP(RabbitMQ)を既に使用している場合、チャットにXMPP(またはその他のプロトコル)を使用する必要があります
- 23. プログラムがDirectXファイルを探す場所をリダイレクトする方法はありますか?
- 24. Javaプログラムによって生成された一時ファイル(クリーンアップ)を削除する方法はありますか?
- 25. javaにあるURLからそれを削除する必要がある場合は、パラメータをチェックするためのデフォルトクラスがありますか?
- 26. コンピュータからSMSにプログラムでアクセスする方法はありますか?
- 27. が、私はそのように入力して.dbファイルを取るプログラムにする必要があり
- 28. Dockerコンテナがネイティブに動作しているのか、Docker Machineを使用しているのかをプログラムで検出する方法はありますか?
- 29. Java InputStreamが使用されている場合のみブロックされます。InputStreamReader
- 30. Luaプログラムにエラーがあった場合、そのエラーはスタックの一番上にありますか?
あなたが実際には同じプログラムで別のプログラム、または別のスレッドを意味しますか? – khelwood
これはあなたのために機能しますか? http://stackoverflow.com/questions/128038/how-can-i-lock-a-file-using-java-if-possible – Jaydee
@ Jaydeeの提案は、私が通常使っていたものです。しかし、ドキュメントによれば、「ロックが実際に別のプログラムがロックされた領域のコンテンツにアクセスするのを防ぐかどうかは、システムに依存するため、不特定」です。これはあなたにとって問題ではないことを確認してください。 – Nando