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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈延真 中级黑马   /  2013-6-1 09:45  /  1254 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈延真 于 2013-6-1 15:37 编辑

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
/*
*需求: 从键盘录入数据打印在控制台
* 从键盘录入到打印控制台,需要转换流,为什么使用高效的时候,用的是BufferedReader,而不是BufferedInputStream?
  */
class Demo {
    public static void main(String[] args) throws IOException {
         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
         BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));      
          String line = null;
          while ((line = br.readLine()) != null) {
                   if ("over".equals(line)) {
                           break;
                   }
                    bw.write(line);
                     bw.newLine();
                    bw.flush();
          }
         bw.close();
          br.close();
    }
}

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

4 个回复

倒序浏览
其实很简单,问题就是在这里 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));键盘输入的事字节,我们已经通过new InputStreamReader(System.in)转换成了字符流,所以用
BufferedReader读取啊

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
因为 System.in 和 System.out 都是字节流,所以不能用字符流的buffered直接读取
回复 使用道具 举报
廖志强 发表于 2013-6-1 10:07
其实很简单,问题就是在这里 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ...

如果不做流的转换,可以用字节流直接操作键盘录入吗?
回复 使用道具 举报

BufferedReader用来缓冲字符流,BufferedInputStream用来缓冲字节流。

InputStreamReader是字符流,所以用BufferedReader。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马