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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 林豪 中级黑马   /  2012-5-7 23:51  /  1173 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在学到IO流的时候,讲到键盘录入,为什么 writer也能直接打印数据,他不是写入数据到文件中吗?
  BufferedReader bufr= new BufferedReader(new InputStreamReader(System.in));
  BufferedWriter bufw =new BufferedWriter(new OutputStreamWriter(System.out));
   String line = null;
   while((line=bufr.readLine())!=null)
   {
        if("over".equals(line)
            break;
       bufw.writer(line.toUpperCase());
       bufw.newLine();
       bufw.flush();
   }

1 个回复

倒序浏览
本帖最后由 周素强 于 2012-5-8 00:31 编辑

读取转换流:
InputStreamReader流是Reader下的一个子类,是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。
例如:
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

写入转换流:
OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。
为了获得最高效率,可考虑将 OutputStreamWriter 包装到 BufferedWriter 中,以避免频繁调用转换器。
例如:
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));


另外说一下你所说的writer要写入哪是要看目的地的,OutputStreamWriter(System.out)这个输出流里面的目的地就是控制台,所以writer就会把数据写到控制台上。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马