本帖最后由 付信榕 于 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是字符转字节的流(字符流通向字节流的桥梁)。
不同观点的可讨论,认可的可支持下,争取能达到确定的答案,避免更多的学习者在此问题纠结。
|