Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
高级Java文件I/O教程?提示?建议?_Java_Database_File_Frameworks_Io - Fatal编程技术网

高级Java文件I/O教程?提示?建议?

高级Java文件I/O教程?提示?建议?,java,database,file,frameworks,io,Java,Database,File,Frameworks,Io,我现在正在做一个项目,它将利用Java文件I/O,而不仅仅是我在网上找到的简单的“将此字符串写入文件”文档和教程。这个项目本质上提供了一种数据库机制,类似于现在广受关注的“NoSQL”数据库。然而,我找不到大量的文档来提供关于使用哪种API、如何使用它们等的详细信息。我也一直在寻找关于Java文件I/O的任何普遍接受的设计模式,但运气不好 如果我必须列出几个要求,我会说: 伪事务支持(这不是一个硬性要求,因为它可以在API堆栈的更高层实现) 能够在结构中写入任意长度的数据,以便以后读取 索引

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

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

  • 伪事务支持(这不是一个硬性要求,因为它可以在API堆栈的更高层实现)
  • 能够在结构中写入任意长度的数据,以便以后读取
  • 索引
  • 能够有效地从“数据库”中删除对象
  • 快速搜索
  • 可能的多线程访问(多读线程、单写,最有可能)
有人能给我指一些可能有用的教程、文档、设计模式等吗?有没有围绕Java文件I/O的开源框架?我知道有很多框架围绕NIO提供包装器,用于网络I/O,但与文件无关

谢谢你能提供的任何帮助

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

你可能也对这个项目感兴趣,尽管我还没有仔细研究它的来源


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

谢谢!我从未听说过XADisk,但它看起来很有趣。我知道ApacheCommons事务,这就是为什么我不太关心如何实现对事务的支持。似乎必须首先构建对事务的支持。搜索和其他功能可以构建在API之上,也可以构建在API内部,这取决于您是否希望此类操作也是事务性的。换句话说,如果您需要避免脏读、不可重复读和虚读,则必须确保搜索和其他与读相关的操作也必须在事务上下文中执行。理解JTA是如何工作的,对于设计事务性API有很大帮助。