java - 如何将行写入文件,并且每一行都是一个原子操作?

标签 java file filesystems

我想向文件写入一些行,并且我需要每一行写入都是一个原子操作。

例如,我有 3 行:

111111111111111111111111
222222222222222222222222
333333333333333333333333

当我将它们逐行写入文件时,程序可能会错误退出,因此保存的数据可能是:

11111111111111111111111
222222

这不是我所期望的。我希望每一行都是一个事务,一个原子操作。

我应该怎么做?

<小时/>

目前我使用 Java 来执行此操作。

最佳答案

没有 100% 可靠的方法来保证这一点。

我认为最接近的方法是调用 flush()在输出流上,然后 sync()在底层文件描述符上。同样,在某些故障模式下这没有帮助。

关于java - 如何将行写入文件,并且每一行都是一个原子操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7820888/

相关文章:

java - Spring Data JPA - RepositoryConfigurationExtension 中的错误

windows - 使用 cmd 删除文件名前缀

python - 如何分割文件?

c++ - 如何从其他线程停止 ReadDirectoryChangesW

perl - 为什么Perl的两个arg公开似乎剥夺了换行符?

java - Hibernate 一对多添加新子项

java - 调试类代码时出现问题

java - Ruby 是否兼容严格的页面对象模式?

java - 创建并写入文件

database - 存储上传的图像、SQL 数据库或磁盘文件系统的最佳位置是什么?