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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jingzhouheima 中级黑马   /  2013-8-1 14:50  /  1599 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 2013-8-2 19:03 编辑

public static void main(String[] args) throws IOException
{
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));//----------------------------------问题是OutputStreamWriter是字符流转向字节流的桥梁,那么这里在
                                                                                     //----------------------------------存入的时候不就已经是字节了吗。但怎么就是字符流了呢?
String line = null;
while((line=bufr.readLine())!=null)
{
  if("over".equals(line))
   break;
  bufw.write(line.toUpperCase());
  bufw.newLine();
  bufw.flush();
}
bufr.close();
}

评分

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

查看全部评分

2 个回复

倒序浏览
转换流的特点就是用字符流的方法来操作字节流,无论是读取还是写入,都是用字符流的方法来操作的
很多人都说转换流的读取是字节转字符,写入是字符转字节,这个要看你怎么理解,转换是由转换流来完成的,而不是你来完成的
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
这句话的意思:我用字符流 来读取你的字节数据
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));//
这句话的意思:我给你字符数据 你给我用字节流写

换个角度想,BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));这句话读取的结果是什么? 是一堆字符数据
在while循环中 数据一边读 一边写
本来读出来的数据就是字符数据
那么在把这些数据交给BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
这时候的数据还是字符数据,等写完的结果才是字节呢

评分

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

查看全部评分

回复 使用道具 举报
你能在控制台输出字节吗. ?   比如说图片MP3.  等媒体文件. 全是用字节编的.     字节流代表权威.  以为他什么都能干. .  
但是控制台无论是输入还是输出. 全部都是字符形式的. .  而且字符流的专门处理字符的能力上比字节流强太多.
所以.  就是这么回事.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马