关于System.out的一个问题,它不是缓冲流吗!

justajavaboy 2004-10-18 08:00:11
书上说,System.out是缓冲流。而缓冲流输出的数据并不直接送向输出流,而是先送到缓冲区。待缓冲区满,或有回车符键入,则刷新缓冲区,将数据送到输出流。

于是我试验了一下,我编写了下列语句:
System.out.print("this should not be seen first !");
System.in.read();

当运行时,发现先出现 “this should not be seen first !”,然后才是我的输入。
按理说,“this should not be seen first !”应先输入缓冲区,待缓冲区满或有回车符键入才刷新缓冲区,可此时我并没有键入回车符,缓冲区也不可能满,所以,“this should not be seen first !”应并没有进入标准输出流,也就不应在控制台上显示。而当我输入完毕,程序将结束时,
强制刷新缓冲区时,才应在控制台上输出。
可事实并非如我所想,且我所想也不合情理,谁能解释一下这是为什麽呀?
...全文
132 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
anewjavaboy 2004-10-19
  • 打赏
  • 举报
回复
up

81,122

社区成员

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

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