天天看点

用缓冲区实现文件的读写和拷贝

package yuwei.com;

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

/*
 * 字符流的缓冲区
 提高了对数据的读写效率
 缓冲区的出现是为了提高流的操作
 所以在创建缓冲区的时候,必须先有流对象
 */
public class BufferedWriterDemo {

    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub

        //创建一个写入字符的流对象
        FileWriter fw = new FileWriter("buf.txt",true);

        BufferedWriter bufw = new BufferedWriter(fw);

        bufw.write("abcde");
        //换行
        bufw.newLine();

        bufw.write("abcde");
        bufw.newLine();

        //记得刷新
        bufw.flush();

        //关闭缓冲区就是关闭缓冲区中的流对象
        bufw.close();

        FileReader fr = new FileReader("buf.txt");
        BufferedReader bufr = new BufferedReader(fr);

        String a = null;
        while((a = bufr.readLine()) != null) {
            System.out.println(a);
        }

        bufr.close();

        //通过缓冲区copy文件
        BufferedReader bufr1 = new BufferedReader(new FileReader("buf.txt"));
        BufferedWriter bufw1 = new BufferedWriter(new FileWriter("bufcopy.txt",true));
        while((a = bufr1.readLine()) != null) {
            bufw1.write(a);
            //换行很重要********************************************
            //newLine不能返回换行字符
            bufw1.newLine();
        }
        bufw1.flush();
        bufw1.close();
        bufr1.close();
    }

}