以下是引用小习小习在2012-11-5 17:02:21的发言:
rt,对输出流,输入流和缓冲区的概念是模糊的,谁能讲解一下,我想了下,对于输入数据,键盘(输入数据)-->输入流(这个可以储存数据吗?)-->缓冲区.
输出数据的时候,缓冲区-->输出流-->显示器,这样理解对吗?去百度没有找到想要的结果。
也没都仔细看大家的回答,不过 2楼 zklhp 的理解就比较准确。流就是一种结构的抽象。
它最直观的理解正如它的名字,流,从上游往下游自然流动。从一个入口进去之后自然会从另一个出口出来。比如你说输入流,入口点就可以是键盘这种设备,然后从程序获取这个输入。输出流也差不多。
缓冲是流实现的一种机制。使用这种机制是原因是,人们发现频繁访问设备会降低效率,而在一定条件下使用缓冲区可以大幅提升效率。由于使用缓冲不是在什么场合都适宜,所以像 c/c++ 这种可以控制底层的语言,一般都允许程序员灵活控制。因此流的实现机制也不都是完全透明的,缓冲区的存在大家也都知道。