为了账号安全,请及时绑定邮箱和手机立即绑定

out.println()和flush()都有输出到客户端的作用,为什么先out.println()再flush(),却没有输出两遍?

  1. 如题

  2. 我们平时输出的时候直接用flush()方法岂不是更好, 边清理缓存边输出?

正在回答

2 回答

out.println("窗前明月光<br>"); 

out.println("疑是地上霜<br>");

这两句实际在I/0中都还没有输出,只是放在缓存区中,直到缓冲区满了或请求结束了就一起输出;但是调用了flush就是先缓存的被你立即输出走了,后面就不会输出了,所以也就只会输出一遍。

2 回复 有任何疑惑可以回复我~
#1

昵称是JaVa 提问者

非常感谢!
2017-02-22 回复 有任何疑惑可以回复我~

缓冲区大小:8192byte
剩余大小:8139byte
是否自动清空:true 

从两次剩余大小可以看出来,如果不加flush就是把4句先放到缓存中一起输出,如果加了flush就是先缓存了2句然后输出,然后再缓存2句 再输出。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

out.println()和flush()都有输出到客户端的作用,为什么先out.println()再flush(),却没有输出两遍?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信