当前位置: 首页 > 面试题库 >

Java中文件操作的事务处理模式

鲁德佑
2023-03-14
问题内容

也许我在这里想解释的没有任何意义,所以我想提前道歉。无论如何,我会尽力的。

我试图读取文件,执行一些数据库操作,然后将内容移动到另一个文件。我想知道是否有可能在Java中以原子方式执行所有这些操作,因此,如果操作列表中有任何错误,请回滚完整序列并返回到起点。

在此先感谢您的帮助。


问题答案:

看一下Apache Commons
Transaction
。它具有事务性管理文件的功能。

一个存档文章详细介绍了其与文件系统的使用。

更新

请注意,首页上的状态为:

由于我们确信不能可靠地实现主要广告功能的事务性文件访问,因此我们决定将项目休眠。我们坚信,在普通文件系统之上不可能有这样的实现。尽管还有其他有用的部分(例如多级锁定,包括死锁检测),但是事务文件系统是人们使用此库的主要原因。由于根本无法使其完全具有事务性,因此它无法像宣传的那样工作。



 类似资料:
  • 在批处理脚本中,可以使用任何编程语言执行普通的基于文件夹的操作。 以下是一些可以在文件夹上执行的操作。 创建文件夹 列出文件夹 遍历文件夹中的文件 删除文件夹 重命名文件夹

  • 问题内容: 我想在JFrame中听鼠标移动和单击。为此,我添加了一个实现如下的MouseListener :( View类的整个代码在https://gist.github.com/2837224,Board类在https://gist.github.com/2837231) 有趣的是,mousePressed()运行良好,但其他两个运行不正常(移动鼠标时控制台上没有任何显示)。有人可以告诉我我在

  • 使用事务处理的话,需要数据库引擎支持事务处理。比如 MySQL 的 MyISAM 不支持事务处理,需要使用 InnoDB 引擎。 使用 transaction 方法操作数据库事务,当发生异常会自动回滚,例如: 自动控制事务处理 Db::transaction(function(){ Db::name('user')->find(1); Db::name('user')->delet

  • 使用事务处理的话,需要数据库引擎支持事务处理。比如 MySQL 的 MyISAM 不支持事务处理,需要使用 InnoDB 引擎。 使用 transaction 方法操作数据库事务,当发生异常会自动回滚,例如: 自动控制事务处理 Db::transaction(function(){ Db::name('user')->find(1); Db::name('user')->delet

  • 使用事务处理的话,需要数据库引擎支持事务处理。比如 MySQL 的 MyISAM 不支持事务处理,需要使用 InnoDB 引擎。 最简单的方式是使用 transaction 方法操作数据库事务,当闭包中的代码发生异常会自动回滚,例如: Db::transaction(function () { Db::table('think_user')->find(1); Db::table(