您好,我正在使用 java 中的 File 类来编写一个包含超过 100,000 行信息的 txt 文件。我在fedora linux上。在写入文件时,我不希望在完全完成之前允许读取它。
我认为在写入文件之前设置 setReadable(false) 然后最后将其设置为 true 会起作用,但没有人知道我如何正确地做到这一点
谢谢你。
您好,我正在使用 java 中的 File 类来编写一个包含超过 100,000 行信息的 txt 文件。我在fedora linux上。在写入文件时,我不希望在完全完成之前允许读取它。
我认为在写入文件之前设置 setReadable(false) 然后最后将其设置为 true 会起作用,但没有人知道我如何正确地做到这一点
谢谢你。
使用 .tmp 扩展名编写它,然后在完成后将其移动/重命名为真正的扩展名
final File file = new File(filename + ".tmp");
// code to save the text to the file
file.renameTo(new File(filename+ ".txt"))
.renameTo 是 linux 上的原子操作。
您应该使用来自 Apache 的事务来实现它。它允许您在单个事务中写入文件。在您提交之前,您的基本文件甚至都不存在
但你也可以独自完成。将您的文件写入其他位置并在完成后将其移动