其实一切都起源于有些程序员太懒。。。
键盘录入的方式有两种:
方式1:一次读取一个字节,但是,我们需要每次都对读取到的数据进行保存,将来判断是否一行结束,麻烦。
方式2:一次读取一个字符数组,但是这个时候,最大的问题就是,数组的长度定义为多大比较好,不好确定。
这两种方式都不太好。
我想用一次读取一行的。
想到了高效字符输入流的:readLine()方法。而BufferedWriter需要的是一个字符流,但现有的是一个字节流。
于是需要一个转换流:InputStreamReader是字节流转向字符流的桥梁。
请看代码:
- public static void main(String[] args) throws IOException {
- // 封装数据源,键盘录入
- // 也可以这么写:
- // BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- InputStream is = System.in;
- InputStreamReader isr = new InputStreamReader(is);
- BufferedReader br = new BufferedReader(isr);
- // 封装目的地,bw.txt
- BufferedWriter bw = new BufferedWriter(new FileWriter("bw.txt"));
- System.out.println("请输入:");
- String line = null;
- // 一次读取一行,开始录入。
- while ((line = br.readLine()) != null) {
- if (line.equals("over")) {
- break;
- }
- bw.write(line);
- bw.newLine();
- bw.flush();
- }
- bw.close();
- br.close();
- }
复制代码 |
|