我正在尝试学习如何使用 Apache Commons VFS2。
我已经阅读了我能找到的所有文档,并且我已经对 API 有点熟悉,但仍有一件事对我来说不是很清楚。
缓存机制是如何工作的?尤其:
我不明白缓存策略和 FilesCache 接口之间的区别。什么时候用哪个?
在这里的文档中说:http ://wiki.apache.org/commons/VfsCacheStrategy ...有3种可能的缓存策略,每种都有详细解释。我得到了“最简单”的 on_call 策略,但其他两个我没有。例如 - 如果我们选择 MANUAL 策略,据说“你必须使用 fileObject.refresh() 来用文件系统刷新你的对象”。但这究竟意味着什么?这是否意味着如果我将字节写入此 FileObject 的 FileContents,在我关闭文件对象或调用刷新之前,它们实际上不会被写入?如果我有 2 个从同一个 URI 解析的 FileObjects 并且我 delete() 第一个怎么办?由于文件对象被缓存,第二个的 exists() 方法是否仍会返回 true?
当我尝试在我的机器上本地使用不同的缓存策略时,我并没有发现行为有任何差异。它们的行为都相同,并且文件始终与 FS 同步(或者至少不明显它们不是)。