黑马程序员技术交流社区

标题: 【黑马云青年 胡浩】关于字节流OutputStreamWriter [打印本页]

作者: 胡浩    时间: 2013-5-24 23:13
标题: 【黑马云青年 胡浩】关于字节流OutputStreamWriter
本帖最后由 胡浩 于 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对象,然后通过编码,将字符数据转换为字节,然后到达控制台
,为什么控制台中输出的不是字节数据,而是字符数据呢?


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

谢谢你的提醒,我懂了。




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