最主要是通过需求来选择出所需的流对象

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test1 {

    /*
     * 需求:通过键盘录入数据,将数据保存到一个文件中
     * 
     * 明确一:有源,有目的
     * 源:InputStream Reader
     * 目的: OutputStream Writer
     * 
     * 明确二:是纯文本的数据吗?是。
     * 源:Reader
     * 目的:Writer
     * 
     * 明确三:具体设备
     * 源设备:System.in
     * 目的设备:硬盘
     * 
     * InputStream is = System.in;
     * FileWriter fw = new FileWriter("a.txt");
     * 
     *将读取到的字节存储到数组read(byte[])中
     *将字节数组转成字符串
     *通过fw.write(String)写入到文件
     *
     *但是麻烦!!!!
     *因为明确源是Reader,需要将字节流转换成字符流,这样操作文字就便捷了。
     *
     *明确四:需要功能吗?
     *需要,转换。字节-->字符。 InputStreamReader
     * 
     * InputStreamReader isr = new InputStreamReader(System.in);
     * FileWriter fw = new FileWriter("a.txt");
     *一次读取一个字符
     *将读到的字符写入
     * 当然也可以定义字符数组缓冲区
     * 
     * 需要其他功能吗?
     * 需要,高效 Buffer
     * 
     * BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
     * BufferedWriter bufw = new BufferedWriter(new FileWriter("a.txt"));
     * 
     * line = readLine();
     * bufw.write(String);
     * bufw.flush();
     * 
     */
    public static void main(String[] args) throws IOException {
        
        methodDemo();
        
    }

    public static void methodDemo() throws IOException {
        
        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bufw = new BufferedWriter(new FileWriter("tempfile\\qujianleiceshi1.txt"));
        
        String str = null;
        
        while((str=bufr.readLine())!=null){
            if("over".equals(str))
                break;
            bufw.write(str);
            bufw.newLine();
            bufw.flush();
            
        }
        bufw.close();
        bufr.close();
        
        
    }

}

 

posted on 2016-09-25 21:56  北方丶有佳人  阅读(151)  评论(0编辑  收藏  举报