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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 雅望天堂 中级黑马   /  2014-5-30 09:05  /  1310 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

InputStreamReader是字节流通向字符流的桥梁,而OutputStreamWriter 是字符流通向字节流的桥梁,这个桥梁有没有方向性,也就是说InputStreamReader是字节流-->字符流,而OutputStreamWriter是字符流---->字节流。有这个顺序么?如果有顺序,如下就有问题BufferedReader bufr = new BufferedReader(new InputStreamReader(new FileInputStream("out.txt")));这个最后一个括号中填的是new FileInputStream("out.txt"),正确。因为是字节流,要转换为字符流。
而BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));这个就不对了啊,System.out返回的明明是字节流,而OutputStreamWriter是字符流转字节流,矛盾啊。如何说法?请高手请教。

5 个回复

倒序浏览
你可以这样理解:OutputStreamWriter写的时候是字符,里面的目的地是字节流,这样就是字符流转字节流了。InputStreamReader是读取流,参数中最终的流是字节流,最后是以字符流的方式读出来的,就是字节流转字符流
回复 使用道具 举报
⊙﹏⊙b汗,没看懂你想问什么
回复 使用道具 举报
我的理解是这样的,InputStreamReader和OutputStreamWriter导致你有误区的是他们的方向没有搞清楚,我是这样想的 ,InputStreamReader所带的参数指定的数据的来源是一个字节流,而OutputStreamWriter所带的参数不是是目的,目的是一个字节流,你在这里是把源和目的搞混淆了,System。out的确是字节流,这里所OutputStreamWriter是字符流---字节流的桥梁,就好像一个流向,System.out是目标,而不是源。。。。
回复 使用道具 举报
InputStreamReader是字节流-->字符流,而OutputStreamWriter是字符流---->字节流
我觉得这个理解有点不太对!InputStreamReader是字节流-->字符流,,这个是对的!而这个OutputStreamWriter是字符流---->字节流,似乎是有点问题!我觉得吧而OutputStreamWriter,还是字节流-->字符流
个人理解,InputStreamReader是将用字节读取到的字节数据,转化为ASCII中的字符数据再传入系统,
而OutputStreamWriter是将以字节写出的数据转化为字符再进行输出!两个都是把字节转成了字符!!
小学生,不是很懂,不喜勿喷!

回复 使用道具 举报
你在头两句就错了。InputStreamReader和OutputStreamWrtier都是把字节流转换为字符流.
BufferedWrtier和BufferedReader是带缓冲区的字符流,
  BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("in.txt")));是把文件操作的字李流转换为字符流,然后再包装成带有缓冲区的字符流。(往文件写)
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));从键盘读)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马