gpt4 book ai didi

java - BufferedWriter自动刷新

转载 作者:行者123 更新时间:2023-12-02 06:51:58 25 4
gpt4 key购买 nike

我想知道我应该写入多长时间才能超出缓冲区,从而自动刷新缓冲区。

try
{
BufferedWriter br = new BufferedWriter(new FileWriter(file),1);

br.write("How much should I write in order to get it flushed without using .flush() nor close());

我知道 close() 会自动刷新缓冲区,但我也知道一旦缓冲区已满并且它接收到更多输入,它就会刷新它,然后获得更多输入。那么我应该写多少才能克服我在构造函数中指定的 1 大小?我已经输入了很多但是没有结果。PS:这只是为了了解缓冲区在幕后是如何工作的。

提前致谢。

最佳答案

如果查看 BufferedWriter 的任何 write 方法的 Java 源代码,您将看到 flushBuffer 方法调用,其中,依次调用 out.write(...)。它不会调用 out.flush()

用更容易理解的术语来说,这意味着什么:

是的,它会在每个字符后刷新,但会将其刷新到底层的 Writer(本例中为 FileWriter),而不是实际的文件(与flush,它调用 flushBuffer 以及 out.flush(),将底层的 Writer 刷新到实际文件)。 FileWriter 有自己的刷新发生时间安排(我不完全确定,但我认为缓冲区大小是 StreamEncoder 中定义的默认值,即 8192 )。

关于java - BufferedWriter自动刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17926136/

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