<分区>
我的项目需要RandomAccessFile
,我已经实现了。但是在测试Multiple Access时,发现了很多问题。它不能确保文件访问安全,没有ACID语义。所以我需要一个基于RandomAccessFile
的框架来解决这个问题。
<分区>
我的项目需要RandomAccessFile
,我已经实现了。但是在测试Multiple Access时,发现了很多问题。它不能确保文件访问安全,没有ACID语义。所以我需要一个基于RandomAccessFile
的框架来解决这个问题。
最佳答案
您具体遇到了哪些问题?您是否需要完整的 ACID 支持、并发事务隔离、回滚等。或者您“只”需要更强的鲁棒性来处理某些类型的故障?解决方案将取决于您的要求。
不过,这里是解决事务文件系统问题的框架列表。
如果您的应用在 Java EE 应用服务器中运行,您可以查看
对于plain Java,你可以看看
一般来说,事务文件系统很复杂。否则,您可以自己制作设计以提供一些稳健性。这是 an answer我在此处草拟了一个通常提供足够稳健性的设计。确保您还了解刷新(例如 FileOutputStream.flush
)如何与 java File
API 一起工作以提高稳健性。如果您想要完整的 ACID 稳健性,将数据存储在数据库中几乎更容易。
同样,解决方案将取决于您需要的稳健性的确切级别。有些问题可以在设计层面解决(锁、刷新等),有些则需要第三方库才能进行真实交易。
相关:
关于java - 是否有任何关于事务性文件I/O、Java 语言的开源工具或框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3132869/