gpt4 book ai didi

java - 当 Java 中的输入缓冲区自动刷新时会发生什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:32 27 4
gpt4 key购买 nike

刚读完

Some buffered output classes support autoflush, specified by an optional constructor argument. When autoflush is enabled, certain key events cause the buffer to be flushed. For example, an autoflush PrintWriter object flushes the buffer on every invocation of println or format.

因此,如果我在一段时间内保留任何 BufferReader 的引用并且它被刷新,那么如何保留所有数据呢?是否有一些回调机制会自动刷新它并再次读取内容,或者我会丢失数据并再次调用它吗?

最佳答案

So if I am keeping the reference of any BufferReader for some time being and it gets flushed , then how all the data will be retained back?

我想你的意思是 BufferedWriter。 (ReaderInputStream API 都没有 flush() 方法。刷新对“源”没有任何意义。)

刷新的数据被写入流的“接收器”;即文件或套接字或其他任何东西。因此,如果您查看文件(或其他文件),如果流已被刷新(成功),数据将在那里。

Is there some call back mechanism that will automatically flush it and again read the content

没有回调机制1。 (至少,标准类库提供的任何缓冲流类中都没有:谁知道自定义类可能会做什么...)

当某些事情发生时,数据会自动刷新。例如,当应用程序为 PrintWriter 调用 println 时。

... or will I lose the data and again I need to call for it?

这在语法上或语义上都没有意义。我不知道你想问什么。

也许你不明白flush是干什么的。刷新只是意味着将数据推出缓冲区,并推到流发送数据的任何地方。显式 flush() 调用或自动刷新仅意味着“立即写入”。


1 - 顺便说一句,BufferedWriter 也没有 finalize() 方法。这意味着如果这些对象之一变得不可访问,而它仍然有输出缓冲,则永远不会写入该输出。

关于java - 当 Java 中的输入缓冲区自动刷新时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10370062/

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