小问题,不忙就看看

jsyx 2001-10-13 10:29:21
flush的作用是什吗,一直不太理解
...全文
122 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hahaha88 2001-10-14
  • 打赏
  • 举报
回复
小衲补充一点:
以下是java.io.OutputStream(一个抽象类)中对flush()的说明:

/**
* Flushes this output stream and forces any buffered output bytes
* to be written out. The general contract of <code>flush</code> is
* that calling it is an indication that, if any bytes previously
* written have been buffered by the implementation of the output
* stream, such bytes should immediately be written to their
* intended destination.
* <p>
* The <code>flush</code> method of <code>OutputStream</code> does nothing.
*
* @exception IOException if an I/O error occurs.
*/

另外,flush()能否真正工作,取决于子类是否真正override了这个flush()方法,
抽象类java.io.OutputStream中的flush()不是抽象方法,但没有进行任何实现(空的
方法体);另外,比如java.io.FileOutputStream好象也没有override这个flush()
方法

如果某个子类真正override了这个flush()方法,则这时你依然可以通过java.io.OutputStream
来使用这个子类(多态),即用户不需要知道这个子类真正的type,但这时子类中的flush()
将被调用,这时flush()就真正起作用了
telstar 2001-10-13
  • 打赏
  • 举报
回复
同意lusxiao(lusxiao) 
lusxiao 2001-10-13
  • 打赏
  • 举报
回复
基本上在关闭io前。否则当前数据缓存区里的数据可能会丢失。
icey 2001-10-13
  • 打赏
  • 举报
回复
在IO流中,将驻留在缓存中的数据强行刷新到输出流中,使用户能够获取数据。
jsyx 2001-10-13
  • 打赏
  • 举报
回复
那到底什么时候,需要强制刷新。这个方法主要在什么情况下调用
leo_zhangfh 2001-10-13
  • 打赏
  • 举报
回复
要涉及到UNIX的哦
loveme_y 2001-10-13
  • 打赏
  • 举报
回复
清空缓冲区,防止数据丢失,同意lusxiao(lusxiao)的说话
lusxiao 2001-10-13
  • 打赏
  • 举报
回复
把数据缓存区里的数据,立即刷新到流里。
你编过unix程序就知道了。
高级IO流是缓冲流,数据并不是马上到流里,只有缓存区满了(不是绝对的),在统一刷新到流里,flush就是用来把数据缓存区里的数据强迫刷新到流里。
czb 2001-10-13
  • 打赏
  • 举报
回复
清空流
hexiaofeng 2001-10-13
  • 打赏
  • 举报
回复
将内存中的数据读出

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧