gpt4 book ai didi

java - 多次打开和关闭同一文件与长时间打开文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:09:07 24 4
gpt4 key购买 nike

每当 JTextArea 字段中的内容发生任何变化时,我都会写入一个 File。我决定每次根据更改事件打开和关闭文件内容。

有点像,

public void addToLogFile(String changeContent) {
try {
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(currentLogFile,true)));
pw.print(changeContent);
pw.close();
} catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}

我认为我们可以在初始阶段打开它并在需要时转储内容,而不是每次都打开和关闭文件。最后在结束阶段关闭它。

在计划的初始阶段:

PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(currentLogFile,true)));

然后在代码中的某个地方,需要的地方,

pw.print(changeContent); // Most frequent usage

在计划的最后阶段:

pw.close();

哪个效率更高?在什么情况下,我必须选择一个?

最佳答案

更有效的肯定是打开文件一次。每次打开文件的成本都很高。

它可能有用的一种情况是,当文件的新条目在很长一段时间内出现一次时,操作系统不需要保持打开的文件处理程序。

我会考虑每次打开和关闭它的另一种情况是写入不经常发生并且您希望让其他进程写入文件。或者,当您希望确保每个条目在写入后立即可见时,您应该更简单地刷新缓冲区。

关于java - 多次打开和关闭同一文件与长时间打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30255953/

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