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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 付信榕 中级黑马   /  2012-6-11 15:12  /  1788 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 付信榕 于 2012-6-11 15:13 编辑

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

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

2 个回复

正序浏览
恩,原来以前我一直理解错了,OutputStreamWriter是字符转字节。
OutputStreamWriter继承了Writer类,在API中此类说明中有:写入字符流的抽象类。
而utputStream这个抽象类在API中有说明:此抽象类是表示输出字节流的所有类的超类。输出流接受输出字节并将这些字节发送到某个接收器。
InputStreamReader的父类Reader也有说明:用于读取字符流的抽象类。,说明其是字符转字节。
回复 使用道具 举报
本帖最后由 李海晓 于 2012-6-11 15:21 编辑

OutputStreamWriter类,将字符流变为字节流输出,InputStreamReader类,将字节流变为字符流输入,以便提高效率。都是这么学的啊。
不然用InputStreamReader读出的是一个个字节,那我们怎么看,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马