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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 逍遥小seng 中级黑马   /  2014-10-28 22:02  /  1899 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么InputStreamReader(InputStream in)和OutputStreamWriter(OutputStream )接受的都是字节流,尤其是后者怎么解释!求帮助!

评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

3 个回复

倒序浏览
这个好像是转换流吧,转换的就是字节流,不接收字节流接收什么?后者就是将从内存输出的字节流按照平台默认编码写成字符吧,没查API,自己看看就知道了,好像是这样的。
回复 使用道具 举报
本帖最后由 nerveva2000 于 2014-10-29 21:34 编辑

InputStreamReader  
字节流转字符流
从字面理解,有个in,输入字节流,就是说从外部进来的是字节数据,所以,你得到的是字符流。
一个比较容易理解的例子就是键盘录入
InputStreamReader isr = new InputStreamReader(System.in);
你敲击键盘,电脑得到的是二进制码,是字节。  通过InputStreamReader,可以转换为字符。放便我们操作是阅读。


OutputStreamWriter
字符流转字节流
从字面理解,有个out,输出字节流,就是说往外输出的是字节数据,所以,你丢出去的是字节流。
OutputStreamWriter osw = new OutputStreamWriter (System.out);
我们在cmd中输入指令,看到的是我们能看懂的字符,但是这个电脑是看不懂的,所以我们通过OutputStreamWriter ,将我们输入的字符转换成字节流,这样程序就能识别了。

不知道对你有没有帮助,我一开始也糊涂,后来仔细思考了一下,我是靠上面的想法记住的
回复 使用道具 举报
楼上说得挺有道理,拿进来和扔出去的都是字节流,只不过中间有一段的缓冲是字符流
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马