java输入流默设置自动刷新,当Java中的输入Buffer自动刷新时会发生什么?

我刚读过

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. (Reader或InputStream 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()调用或自动刷新仅意味着“立即写入”.

1-顺便说一句,BufferedWriter也没有finalize()方法.这意味着,如果这些对象之一在仍缓冲输出的同时变得无法访问,则该输出将永远不会被写入.

标签:io,stream,java

来源: https://codeday.me/bug/20191101/1983293.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值