Apache Commons VFS2 の使用方法を学ぼうとしています。
私は見つけることができるすべてのドキュメントを読んで、すでに API にある程度慣れていますが、まだ完全に明確ではないことが 1 つあります。
キャッシュ メカニズムはどのように機能しますか? 特に:
キャッシュ戦略と FilesCache インターフェースの違いがわかりません。どれがいつ使用されますか?
ここのドキュメントで言われています: http://wiki.apache.org/commons/VfsCacheStrategy ... 3つの可能なキャッシュ戦略があり、それぞれが詳細に説明されています。「最も単純な」on_call戦略を取得しますが、他の2つは取得しません。たとえば、手動戦略を選択した場合、「fileObject.refresh() を使用してオブジェクトをファイルシステムで更新する必要がある」と言われます。しかし、これは正確には何を意味するのでしょうか? この FileObject の FileContents にバイトを書き込むと、ファイル オブジェクトを閉じるか、refresh を呼び出すまで、実際には書き込まれないということですか? 同じ URI から解決される 2 つの FileObject があり、最初の 1 つを delete() した場合はどうなりますか? ファイル オブジェクトがキャッシュされているため、2 番目の exists() メソッドは true を返しますか?
私のマシンでローカルにさまざまなキャッシュ戦略を試してみると、実際には動作に違いはありません。それらはすべて同じように動作し、ファイルは常に FS と同期しています (または、少なくとも同期していないことは目立ちません)。