黑马程序员技术交流社区

标题: 高效Buffered如何使用? [打印本页]

作者: 陈延真    时间: 2013-6-1 09:45
标题: 高效Buffered如何使用?
本帖最后由 陈延真 于 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();
    }
}

作者: 廖志强    时间: 2013-6-1 10:07
其实很简单,问题就是在这里 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));键盘输入的事字节,我们已经通过new InputStreamReader(System.in)转换成了字符流,所以用
BufferedReader读取啊

作者: 骑上最爱    时间: 2013-6-1 10:23
因为 System.in 和 System.out 都是字节流,所以不能用字符流的buffered直接读取
作者: 陈延真    时间: 2013-6-1 11:54
廖志强 发表于 2013-6-1 10:07
其实很简单,问题就是在这里 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ...

如果不做流的转换,可以用字节流直接操作键盘录入吗?
作者: 石贤芝    时间: 2013-6-1 13:54

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

InputStreamReader是字符流,所以用BufferedReader。




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