黑马程序员技术交流社区

标题: 字节流不需要flush疑问? [打印本页]

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

作者: 风声相伴    时间: 2014-12-4 01:50
close(),里面包含了
作者: lishuliang28    时间: 2014-12-4 08:33
我也问过这个问题:字节流在写入数据的时候直接写入到目的地。
作者: huoxy    时间: 2014-12-4 12:45
风声相伴 发表于 2014-12-4 01:50
close(),里面包含了

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

还不太理解,能结合字符流对比一下吗?实现的原理是什么?谢谢~~~
作者: 大大的心    时间: 2014-12-4 21:28
不用的。
作者: huoxy    时间: 2014-12-5 00:04
大大的心 发表于 2014-12-4 21:28
不用的。

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

有点明白了,谢谢!
作者: 温大帅    时间: 2015-3-23 10:41
HelloWorld! 发表于 2014-12-5 01:14
字符流底层使用的还是字节流,因为字符流融合了编码表,所以可以读写字符。字符流写入文本数据时,需要先将 ...

那flush()到底做了什么呢,为什么不需要转换就可以直接写入目的地呢?还有既然字节流不需要flush()就可以将数据写入目的地,为什么还提供flush()方法呢




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