黑马程序员技术交流社区

标题: 关于OutputStreamWriter的疑问的看法 [打印本页]

作者: 付信榕    时间: 2012-6-11 15:12
标题: 关于OutputStreamWriter的疑问的看法
本帖最后由 付信榕 于 2012-6-11 15:13 编辑

关于OutputStreamWriter的疑问的看法
前些天看到有对OutputStreamWriter的疑问的贴,就查阅一下论坛以前的贴。发现论坛上,对OutputStreamWriter的看法有两种:
1,OutputStreamWriter:是字节流转字符流的输出流。根据是:老师上课提到的Stream是字节流的后缀,Writer是字符流的后缀,再类比与InputStreamReader(是字节流通向字符流的桥梁,即字节流转字符流的输入流)。
2,OutputStreamWriter:是字符流转字节流的输出流。理由是:API文档写的是字符流通向字节流的桥梁。
两种看法各抒己见,重要的是两种截然相反的看法竟然都有获得技术加分。
可看本链接http://bbs.itheima.com/forum.php?mod=viewthread&tid=7980
不过支持第2中观点的人还是比较多的。
在查阅资料后,我也是赞同第二种看法,
OutputStreamWriter:是字符流转字节流的输出流
资料一:(API没有翻译错误,老师视频显示的也是这样)
API文档里写的:
InputStreamReader 是字节流通向字符流的桥梁:它使用指定的charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。
OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的charset 将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。
资料二:基础视频day19中的16-IO流(读取转换流) 17-IO流(写入转换流).
老师也是说OutputStreamWriter 是字符流通向字节流的桥梁,且还有代码可以证明OutputStreamWriter是字符流转字节流的输出流。
形象理解就是:
InputStreamReader是字符“打包员”,把字节打包成字符;
OutputStreamWriter是字符“拆包员”,把字符拆成字节。
所以InputStreamReader是字节转字符的流(字节流通向字符流的桥梁),
OutputStreamWriter是字符转字节的流(字符流通向字节流的桥梁)。
不同观点的可讨论,认可的可支持下,争取能达到确定的答案,避免更多的学习者在此问题纠结。


作者: 李海晓    时间: 2012-6-11 15:19
本帖最后由 李海晓 于 2012-6-11 15:21 编辑

OutputStreamWriter类,将字符流变为字节流输出,InputStreamReader类,将字节流变为字符流输入,以便提高效率。都是这么学的啊。
不然用InputStreamReader读出的是一个个字节,那我们怎么看,
作者: 赵兵锋    时间: 2012-6-11 16:03
恩,原来以前我一直理解错了,OutputStreamWriter是字符转字节。
OutputStreamWriter继承了Writer类,在API中此类说明中有:写入字符流的抽象类。
而utputStream这个抽象类在API中有说明:此抽象类是表示输出字节流的所有类的超类。输出流接受输出字节并将这些字节发送到某个接收器。
InputStreamReader的父类Reader也有说明:用于读取字符流的抽象类。,说明其是字符转字节。




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