【发布时间】:2015-03-03 20:36:41
【问题描述】:
我正在尝试学习如何使用 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 同步(或者至少不明显它们不是)。
【问题讨论】:
标签: java vfs apache-commons-vfs