gpt4 book ai didi

java - Java中连续高效地写入文件

转载 作者:行者123 更新时间:2023-12-02 09:13:37 24 4
gpt4 key购买 nike

我有一个程序正在生成一堆输出,我想将其保存到文本文件中。我不一定知道程序何时结束,并且我希望对性能的影响尽可能小。现在,我将行缓冲到 Deque 中,然后每 100 行将整个 Deque 转储到文件中(数量是任意的)。我目前使用 Files.write() 方法。

理想情况下,我希望在程序开始时打开文件,在程序结束时关闭文件,但我不知道程序何时结束,所以我可能无法关闭文件。这还是一个问题吗?我应该使用 Deque 自己进行缓冲,还是应该使用 BufferedWriter 或其他类似的东西?

最佳答案

如果您愿意在应用程序崩溃时冒丢失 Deque 中最后 100 行的风险,那么您还可以使用 BufferedWriterflush() 每 100 行一次。

刷新它具有将其写入操作系统的效果。

从技术上讲,操作系统也可以将数据保存在内存中,但对于没有缓冲区的 FileOutputStream 也会发生这种情况。如果您担心断电或操作系统崩溃,FileOutputStream.getFD().sync() 也会强制操作系统缓冲区写入磁盘。

关于java - Java中连续高效地写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59187475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com