缓冲字符流BufferedReader和BufferedWriter

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
 * 功能:通过按行读取实现文件复制
 * 
 * 思路1:使用字节流还是字符流
 *         使用字符流,对于字节流没有行的概念
 * 
 * 思路2:使用节点流还是处理流
 *         使用处理流
 *         节点流只提供了两种读写的方式
 *         1个字节 或者1个字节数组
 * 
 * BufferedReader和BufferedWriter
 * 好处1:提高了性能
 * 好处2:简化了操作

 * 
 * 注意1:readLine()的底层原理
 *     底层其实还是read(),遇到换行符,转换成字符串
 * 
 * 
 * 注意2:newLine()的底层原理
 *     不同的操作系统中换行符是不同的
 *     window
 *  linux
 *  mac
 *     (2)Windows系统里面,每行结尾是 回车+换行(CR+LF),即“\r\n”;
(3)Unix系统里,每行结尾只有 换行CR,即“\n”;
(4)Mac系统里,每行结尾是 回车CR 即'\r'。

 * @author Administrator
 *
 */
public class TestCopy {

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

    }

}

你可能感兴趣的:(JAVASE)