黑马程序员技术交流社区

标题: 关于字节流字符流和运行流程问题 [打印本页]

作者: yangqing    时间: 2013-7-24 18:02
标题: 关于字节流字符流和运行流程问题
本帖最后由 杨兴庭 于 2013-7-25 22:55 编辑

将一个文本文件数据显示在控制台上。
FileReader fr =new FileReader("a.txt");
OutputStream ops = System.out;

控制台上显示的是字符形式, 为什么下面还需要进行转换。文本读取出来的就是字符形式而后显示在控制台上也是字符形式。
  是因为ops 不是字符形式?
还是因为什么 ?
求解

作者: 陈贺    时间: 2013-7-24 18:28
System.out是键盘输出,是字节流。FileReader 是字符流,所以要转换。
作者: 王磊    时间: 2013-7-24 21:36
使用控制台作为输出载体,确实显示出来的是字符形式的内容,但是其内部的数据确实字节类型的,只不过通过系统内部的转换方式,将这种载体获取到的字节类型数据,转换成了字符显示类型。
也就是说控制台实际操作的并不是字符数据。楼主可以用理解System.in的方式去理解就好了,用键盘输入的是我们想要的字符,但是在输入载体的内部却被系统直接转变成了字节类型数据被流操作。

而楼主所说的这个问题,可以理解为读取的是存文本文件的字符数据,因为该流可以直接操作这类数据,而控制台却不具备操作字符数据这种功能,因为它操作的是字节类型的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2