我现在正在做一个项目,该项目将利用Java文件I/O,它超越了我在网上找到的简单的"将此字符串写入文件"文档和教程。这个项目本质上将提供一种数据库机制,类似于最近备受关注的流行的"NoSQL"数据库。然而,我找不到大量的文档来提供关于使用哪些API、如何使用它们等的详细信息。我也一直在寻找任何公认的Java文件I/O设计模式,但没有任何运气。
如果我必须列出几个要求,我会说:
- 伪事务支持(不是硬性要求,因为它可以在API堆栈中更高级别实现)
- 在以后可以读回的结构中写入任意长度的数据的能力
- 索引
- 能够有效地从"数据库"中删除对象
- 快速搜索
- 可能的多线程访问(很可能是多个读取线程,单个写入)
有人能给我指一下可能有用的教程、文档、设计模式等吗?有没有围绕Java文件I/O的开源框架?我知道很多框架为网络I/O提供了NIO的包装器,但与文件无关。
感谢您提供的任何帮助!
看看Apache Commons Transaction。它支持事务性文件访问,方法是在临时文件中执行工作,并通过将工作移动到实际文件来提交工作。
你可能也对XADisk项目感兴趣,尽管我还没有仔细研究过它的来源。
就搜索而言,ApacheSolr和Lucene项目会有所帮助。