gpt4 book ai didi

java - 我如何每隔 [在此处插入间隔] 写入文件?

转载 作者:行者123 更新时间:2023-11-30 09:41:59 24 4
gpt4 key购买 nike

我知道如何用 Java 写入文件。我的问题是关于我应该何时释放资源。

如果我有一个每 2 分钟将 ArrayList 的内容写入一个文件的线程,我该如何处理文件处理的资源。该文件可以随时被另一个程序读取。

每次写入文件时,我是在每次循环迭代后关闭 FileOutputStreamPrintWriter,还是让它们保持打开和关闭效率更高?他们在线程终止时。还是这会锁定文件,使其无法被其他程序读取?

最佳答案

您应该在完成后关闭文件流,并在下次写入时重新打开它们(2 分钟的时间间隔足够长,打开/关闭的开销微不足道)。

为了确保其他程序或线程在您写入时不访问该文件,那么您应该通过获取 FileChannel 并调用 lock() 方法来锁定它。

例如

FileLock lock;
FileChannel channel;
try
{
channel = myOutputStream.getChannel();
lock = channel.lock(); // This is a blocking lock, also consider tryLock()
// ... write your data
} catch (Exception e)
{

} finally
{
lock.release();
channel.close();
}

关于java - 我如何每隔 [在此处插入间隔] 写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8796904/

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