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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yangqing 中级黑马   /  2013-7-24 18:02  /  1442 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 2013-7-25 22:55 编辑

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

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

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

2 个回复

正序浏览
使用控制台作为输出载体,确实显示出来的是字符形式的内容,但是其内部的数据确实字节类型的,只不过通过系统内部的转换方式,将这种载体获取到的字节类型数据,转换成了字符显示类型。
也就是说控制台实际操作的并不是字符数据。楼主可以用理解System.in的方式去理解就好了,用键盘输入的是我们想要的字符,但是在输入载体的内部却被系统直接转变成了字节类型数据被流操作。

而楼主所说的这个问题,可以理解为读取的是存文本文件的字符数据,因为该流可以直接操作这类数据,而控制台却不具备操作字符数据这种功能,因为它操作的是字节类型的。
回复 使用道具 举报
System.out是键盘输出,是字节流。FileReader 是字符流,所以要转换。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马