【问题标题】:Advanced Java File I/O tutorials? Tips? Advice?高级 Java 文件 I/O 教程?提示?建议?
【发布时间】:2011-06-05 23:47:03
【问题描述】:

我现在正在开展一个项目,该项目将利用 Java 文件 I/O,它超越了我在网上找到的简单的“将此字符串写入文件”文档和教程。该项目本质上将提供一种数据库机制,类似于如今广受关注的流行“NoSQL”数据库。但是,我找不到大量提供有关使用哪些 API、如何使用它们等详细信息的文档。我也一直在寻找任何普遍接受的 Java 文件 I/O 设计模式,但没有祝你好运。

如果我必须列出几个要求,我会说:

  • 伪事务支持(不是硬性要求,因为它可以在 API 堆栈的更高层实现)
  • 能够在结构中写入任意长度的数据,以便日后回读
  • 索引
  • 能够有效地从“数据库”中删除对象
  • 快速搜索
  • 可能的多线程访问(多读线程,单写,最有可能)

谁能告诉我任何可能有用的教程、文档、设计模式等?是否有任何围绕 Java File I/O 的开源框架?我知道很多框架为 NIO 提供了用于网络 I/O 的包装器,但与文件无关。

感谢您提供的任何帮助!

【问题讨论】:

    标签: java database file frameworks io


    【解决方案1】:

    看看Apache Commons Transaction。它支持事务性文件访问,通过在临时文件中执行工作,并通过将它们移动到实际文件来提交工作。

    您可能还对XADisk 项目感兴趣,尽管我没有仔细研究它的来源。

    就搜索而言,Apache SolrLucene 项目会有所帮助。

    【讨论】:

    • 谢谢!我从未听说过 XADisk,但它看起来很有趣。我知道 Apache Commons Transaction,这就是为什么我不太关心如何实现对事务的支持。
    • 似乎必须先内置对事务的支持。搜索和其他功能可以在 API 之上或在 API 内构建,具体取决于您是否希望此类操作也具有事务性。换句话说,如果您需要摆脱脏读、不可重复读和幻读,则必须确保搜索和其他与读相关的操作也必须在事务的上下文中执行。了解 JTA 的工作原理,对设计事务 API 大有帮助。
    猜你喜欢
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    相关资源
    最近更新 更多