转换流InputStreamReader和OutputStreamWriter

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

/**
 * 功能:将从键盘输入的一行行数据复制到一个文件中

 * @author Administrator
 *
 */

public class TestCopy {

    public static void main(String[] args) throws IOException {
        //创建输入流和输出流
        //BufferedReader br = new BufferedReader(new FileReader(new File("e:/log.txt")));
        Scanner input = new Scanner(System.in);
        BufferedWriter bw = new BufferedWriter(new FileWriter("e:/log3.txt"));
        //使用输入流和输出流
        //String str = br.readLine();
        String str = input.nextLine();
        while(!"bye".equals(str)){
            //写一行
            bw.write(str);//只负责写,没有换行
            bw.newLine();//添加一个换行符
            
            //再读一行
            str = input.nextLine();
        }        
        //关闭输入流和输出流
        //br.close();
        input.close();
        bw.close();

    }

}

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

/**
 *功能:将从键盘输入的一行行数据复制到一个文件中
 * 
 * 
 * 转换流
 * 
 * 
 * 1.生活案例
 *  System.in     -----------转换流 -----------  Reader  ---------- BufferedReader(readLine())
 *  三相插头        -----------(三相的插座)转换头(两相插头)-----------  两相插座
 *  适配器模式(转换器模式)
 *  
 * 2.Java中提供了哪些转换流
 *      InputStreamReader  将InputStream转换成Reader
 *      OutputStreamWriter 将 OutputStream转换成Writer
 *      ReaderInputStream 没有
 *   WriterOutputStream 没有
 *   只有将字节流转换成字符流的转换流
 *   
 * 3.InputStreamReader到底是Reader还是InputStream
 *     InputStreamReader是Reader的一个子类陈
 *   Reader reader = new InputStreamReader(is);
        public class InputStreamReader extends Reader {
        
        }
 * 4.标准输入输出设备
 *     System.in :键盘
 *  System.out:显示器
 *     System.err:显示器
 * 
 * @author Administrator
 *
 */

public class TestCopy2 {

    public static void main(String[] args) throws IOException {
        
        //创建输入流和输出流
        InputStream is = System.in;        
        Reader reader = new InputStreamReader(is);//!!!!!
        BufferedReader br = new BufferedReader(reader);
        BufferedWriter bw = new BufferedWriter(new FileWriter("e:/log2.txt"));
        //使用输入流和输出流
        String str = br.readLine();
        while(!"bye".equals(str)){
            //写一行
            bw.write(str);//只负责写,没有换行
            bw.newLine();//添加一个换行符
            //System.out.println();
            //bw.write("\r");
            //再读一行
            str = br.readLine();
        }        
        //关闭输入流和输出流
        br.close();
        bw.close();

    }

}

猜你喜欢

转载自blog.csdn.net/qq_39209492/article/details/83591230