脚本宝典收集整理的这篇文章主要介绍了Java™ 教程(缓冲流),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
缓冲流
到目前为止,我们看到的大多数示例都使用无缓冲的I/O,这意味着每个读取或写入请求都由底层操作系统直接处理,这可以使程序效率低得多,因为每个这样的请求通常触发磁盘访问、网络活动或一些相对昂贵的其他操作。
为了减少这种开销,Java平台实现了缓冲的I/O流,缓冲输入流从称为缓冲区的内存区读取数据,仅当缓冲区为空时才调用原生输入API,类似地,缓冲输出流将数据写入缓冲区,并且仅在缓冲区已满时才调用原生输出API。
程序可以使用我们现在多次使用的包装习惯用法将无缓冲的流转换为缓冲流,将无缓冲的流对象传递给缓冲流类的构造函数,以下是如何修改CopyCharacters
示例中的构造函数调用以使用缓冲I/O:
inputStream = new BufferedReader(new FileReader("xanadu.txt")); outputStream = new BufferedWrITer(new FileWriter("characteroutput.txt"));
有四个用于包装无缓冲流的缓冲流类:BufferedInputStream和BufferedOutputStream创建缓冲的字节流,而BufferedReader和BufferedWriter创建缓冲的字符流。
冲洗缓冲流
在关键点写出缓冲区通常是有意义的,而不是等待它被填满,这称为冲洗缓冲区。
一些缓冲的输出类支持autoflush
,由可选的构造函数参数指定,启用autoflush
时,某些关键事件会导致冲洗缓冲区。例如,自动冲洗PRintWriter
对象在每次调用println
或format
时冲洗缓冲区,有关这些方法的更多信息,请参阅格式化。
要手动冲洗流,请调用其flush
方法,flush
方法在任何输出流上都有效,但除非流被缓冲,否则无效果。
上一篇:字符流
下一篇:扫描
以上是脚本宝典为你收集整理的Java™ 教程(缓冲流)全部内容,希望文章能够帮你解决Java™ 教程(缓冲流)所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。