黑马程序员技术交流社区
标题:
OutputStreamWriter为什么不调用flush()方法或者close()方法时就写不不进去?
[打印本页]
作者:
sss18310878521
时间:
2015-5-16 22:27
标题:
OutputStreamWriter为什么不调用flush()方法或者close()方法时就写不不进去?
今天老师在课堂上讲了关于转换流OutputStreamWriter写入数据问题,如:
OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream ("a.txt"))
osw.writer("hello");
如果此时osw没用调用close()或者flush()方法,则这个字符串是写不进去的,谁能解答一下原因?
作者:
cyr
时间:
2015-5-17 08:07
数据先输入到内存缓冲区里,在没有填满缓冲区,或者不调用flush()的情况下,数据并没有写入到磁盘中。
作者:
guoyangpeng
时间:
2015-5-17 08:16
一楼正解,复习了!
作者:
kingowe
时间:
2015-5-17 08:24
因为这是一个缓冲流,在使用缓冲流时,数据都是先放在缓冲区中,如果不手动 flush() 或者close() 或者缓冲区不满,数据是无法写到指定位置的,所以对于缓冲流,在最后最好要记得flush(),类似的缓冲流还有 PrintWriter,BufferedWriter。。。
作者:
喻忠航
时间:
2015-5-17 08:49
学习了!
作者:
tanzhixue
时间:
2015-5-17 11:15
你写在内存缓冲里面 需要你刷新才会有 close();这个方法是先flush一下再关闭的 思考close()和flush()的区别
作者:
凉仁日记
时间:
2015-5-17 14:22
数据先输入到内存缓冲区里,在没有填满缓冲区,或者不调用flush()的情况下,数据并没有写入到磁盘中。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2