我正在编写一个 web 应用程序(SpringMVC +JSF),它允许用户上传他们的文件并与其他人编辑/共享它们。在这个应用程序的服务层上,我使用 guava 来处理所有文件 IO,但不幸的是,从我目前在参考手册中看到的内容来看,guava 并没有解决并发访问文件的问题。
我知道Java提供的FileChannel类有一个lock方法在一定程度上解决了这个问题,但是它与guava IO框架不太适合。在我摆脱 guava 并使用 FileChannel 和 InputStream 重写我的代码之前,我想知道是否有任何其他方法可以做到这一点,而无需完全切换到另一个 IO 包。
(将文件名映射到锁的大型哈希表对我来说似乎不是一个好的解决方案。当用户群很大时,内存中存储的东西太多。)