Java 中文件操作的事务模式

2022-09-01 01:36:24

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

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

提前感谢您的帮助。


答案 1

看看Apache Commons Transaction。它具有以事务方式管理文件的功能。

篇存档的文章详细介绍了它与文件系统的用法。

更新

请注意,首页上的状态显示:

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


答案 2

没有标准的事务文件API,但我相信有一个Apache项目可以实现你想要的东西。

http://commons.apache.org/transaction/file/index.html

事务性文件包为您提供了允许您在任何文件系统上进行原子读写操作的代码。文件资源管理器为您提供了隔离事务中一组文件的多个操作的可能性。使用锁包,它能够为您提供完整的ACID事务,包括可序列化性。当然,要完成这项工作,对托管文件的所有访问都必须由此管理器完成。管理器无法监视对文件系统的直接访问。

更新

请注意,首页上的状态显示:

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


推荐