黑马程序员技术交流社区

标题: 关于IO流的缓冲区问题 [打印本页]

作者: 136616244    时间: 2014-4-6 07:53
标题: 关于IO流的缓冲区问题
在IO进行写入的时候加入缓冲区BufferedWriter是为了提高流的读写效率,而且缓冲区的的大小有2M,但在进行写操作的时候是将写的内容先读入到内存中,然后刷新或者close的时候才写进硬盘,加入缓冲区有什么用呢?或者书我不刷新可以写比2兆更大的内容不行吗?

作者: 梦里花-静    时间: 2014-4-6 15:59
将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。
该类提供了 newLine() 方法,它使用平台自己的行分隔符概念,此概念由系统属性 line.separator 定义。并非所有平台都使用新行符 ('\n') 来终止各行。因此调用此方法来终止每个输出行要优于直接写入新行符。
通常 Writer 将其输出立即发送到底层字符或字节流。除非要求提示输出,否则建议用 BufferedWriter 包装所有其 write() 操作可能开销很高的 Writer(如 FileWriters 和 OutputStreamWriters)。
将缓冲 PrintWriter 对文件的输出。如果没有缓冲,则每次调用 print() 方法会导致将字符转换为字节,然后立即写入到文件,而这是极其低效的。

作者: ﹊佑雨时杰↘    时间: 2014-4-8 16:42
楼上的说的太好了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2