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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 胡浩 于 2013-5-25 11:48 编辑
  1. package 读取键盘录入;
  2. import java.io.*;
  3. public class ReadKey2 {

  4.         /**
  5.          * @throws IOException
  6.          *
  7.          */
  8.         public static void main(String[] args) throws IOException {

  9.                 BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  10.                 BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
  11.                 String line=null;
  12.                 while((line=br.readLine())!=null){
  13.                         if("over".equals(line)){
  14.                                 break;
  15.                         }
  16.                         bw.write(line);
  17.                         bw.flush();
  18.                 }
  19.                
  20.         }

  21. }
复制代码
根据毕老师的说法,write()方法将字符数据写入到缓冲区中,目的地是outputStreamWriter对象,然后通过编码,将字符数据转换为字节,然后到达控制台
,为什么控制台中输出的不是字节数据,而是字符数据呢?

评分

参与人数 1技术分 +1 黑马币 +3 收起 理由
袁梦希 + 1 + 3 很好,加油

查看全部评分

3 个回复

倒序浏览
兄弟你理解错了,outputStreamWriter是字符转换成字节的对象,也就是转换流,而目的地是控制台,因为 BufferedReader 是接收的字符,而BufferedWriter接收的也是字符,所以你最后输出到控制台上的数据,就是调用BufferedWriter的write方法,它输出的就是字符!
回复 使用道具 举报
你这里的bw.write(line); 用的就是  BufferedWriter 的功能,   而Reader,Writer主要就是用来操作字符的  
回复 使用道具 举报
simonqian 发表于 2013-5-25 08:30
兄弟你理解错了,outputStreamWriter是字符转换成字节的对象,也就是转换流,而目的地是控制台,因为 Buffe ...

谢谢你的提醒,我懂了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马