A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© huoxy 中级黑马   /  2014-12-3 12:30  /  6570 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在看毕老师视频时,关于字节流:FileOutputStream写入字节流到文件时,由于直接对字节进行操作,中间不需要做任何转换,所以不需要flush( )。一直不明白具体原理,那位大神可以指点一下!谢谢!

9 个回复

倒序浏览
close(),里面包含了
回复 使用道具 举报
我也问过这个问题:字节流在写入数据的时候直接写入到目的地。
回复 使用道具 举报

字符流的close会先flush,但字节流不需要flush,即使close里包含,其实没有真正的执行flush的操作!
回复 使用道具 举报
lishuliang28 发表于 2014-12-4 08:33
我也问过这个问题:字节流在写入数据的时候直接写入到目的地。

还不太理解,能结合字符流对比一下吗?实现的原理是什么?谢谢~~~
回复 使用道具 举报
不用的。
回复 使用道具 举报
huoxy 中级黑马 2014-12-5 00:04:30
7#

知其然不知其所以然:handshake
回复 使用道具 举报
字符流底层使用的还是字节流,因为字符流融合了编码表,所以可以读写字符。字符流写入文本数据时,需要先将文本数据写入字符流中,对照编码表转换成字节数据,然后flush进目的地。字节流中是字节数据不需要转换,所以可以直接写入目的地。
回复 使用道具 举报
huoxy 中级黑马 2014-12-5 16:02:16
9#
HelloWorld! 发表于 2014-12-5 01:14
字符流底层使用的还是字节流,因为字符流融合了编码表,所以可以读写字符。字符流写入文本数据时,需要先将 ...

有点明白了,谢谢!
回复 使用道具 举报
HelloWorld! 发表于 2014-12-5 01:14
字符流底层使用的还是字节流,因为字符流融合了编码表,所以可以读写字符。字符流写入文本数据时,需要先将 ...

那flush()到底做了什么呢,为什么不需要转换就可以直接写入目的地呢?还有既然字节流不需要flush()就可以将数据写入目的地,为什么还提供flush()方法呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马