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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张向辉 于 2013-2-6 15:21 编辑

今天看毕老师的IO视频,讲到FileReader中的read方法返回int型数据
但同时又看到InputStream已经将read方法覆写了,而且本身InputStreamReader很清楚是字节流转化为字符流的转换流。
做了下试验,FileReader和InputStreamReader均返回字节流数据。请问字节流转化为字符流转换主要体现在哪里
注:println()接受并显示Char数据。
试验代码和图如下:
  1. import java.io.File;
  2. import java.io.FileReader;
  3. public class cw {
  4. public static void main(String[] args) throws Exception {
  5. /*InputStreamReader x=new InputStreamReader(System.in);
  6. System.out.println(x.read());*/
  7. FileReader x= new FileReader("D:"+File.separator+"java"+File.separator+"hello.java");
  8. System.out.println(x.read());
  9. }
  10. }
复制代码

评分

参与人数 1黑马币 +9 收起 理由
Rancho_Gump + 9

查看全部评分

1 个回复

倒序浏览
     我要纠正一下,FileReader和InputStreamReader返回的是字符流数据。我们通常把处理字符流的IO类成为包装类。其实字符流和字节流的区别并不大,操作方式也几乎没什么差别。但有一点,字符流更符合人类的思维习惯,我们读取的每一个字符对我们来说有确定含义。而字节流,以字节为单位,单个字节,如(char)占两个字节,你读取到其中一个字节,根本没有实际话的意义,但对于计算机底层的I/O流,就是以字节为单位的,所以没有必要为此纠结。具体怎么包装的,可能就要看源码了,不过从数学的角度,也就是数据单元的倍数关系而已。

评分

参与人数 1黑马币 +9 收起 理由
Rancho_Gump + 9

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马