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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

        其实一切都起源于有些程序员太懒。。。       
        键盘录入的方式有两种:        
        方式1:一次读取一个字节,但是,我们需要每次都对读取到的数据进行保存,将来判断是否一行结束,麻烦。
        方式2:一次读取一个字符数组,但是这个时候,最大的问题就是,数组的长度定义为多大比较好,不好确定。
        这两种方式都不太好。
        我想用一次读取一行的。
        想到了高效字符输入流的:readLine()方法。而BufferedWriter需要的是一个字符流,但现有的是一个字节流。
        于是需要一个转换流:InputStreamReader是字节流转向字符流的桥梁。
        请看代码:

  1. public static void main(String[] args) throws IOException {
  2.                 // 封装数据源,键盘录入
  3.                 // 也可以这么写:
  4.                 // BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  5.                 InputStream is = System.in;
  6.                 InputStreamReader isr = new InputStreamReader(is);
  7.                 BufferedReader br = new BufferedReader(isr);
  8.                 // 封装目的地,bw.txt
  9.                 BufferedWriter bw = new BufferedWriter(new FileWriter("bw.txt"));
  10.                 System.out.println("请输入:");
  11.                 String line = null;
  12.                 // 一次读取一行,开始录入。
  13.                 while ((line = br.readLine()) != null) {
  14.                         if (line.equals("over")) {
  15.                                 break;
  16.                         }
  17.                         bw.write(line);
  18.                         bw.newLine();
  19.                         bw.flush();
  20.                 }
  21.                 bw.close();
  22.                 br.close();
  23.         }
复制代码

3 个回复

正序浏览
Boint 发表于 2015-9-4 22:04
王盟哥   你好水啊!

Just So! 彼此彼此喽
回复 使用道具 举报
顶起顶起
回复 使用道具 举报
王盟哥   你好水啊!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马