缓冲

来源:互联网 发布:数据库数字类型 编辑:程序博客网 时间:2024/04/28 12:44
package org.java.io;

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

public class BufferedWriterDemo {

    /**
     * Buffered是流的一个缓冲技术,主要用于来提高, 流的读写的效率,
     * 底层的实现,也就是封装了一个数组的对象来操作
     * ,既然是对流的一个高效,性能的优化,所以要先有流,后又缓冲
     */
    public static void main(String[] args) {
        
        copy1("d:\\test.txt", "f:\\tt.txt");
    }

    public static void copy(String srcFileName, String targetFileName) {
        BufferedReader reader=null;
        BufferedWriter writer=null;
        int len=0;
        char[] chars=new char[1024];
        
        File srcFile=new File(srcFileName);
        if(!srcFile.exists())
            return;
        try {
            reader=new BufferedReader(new FileReader(srcFile));
            File targetFile=new File(targetFileName);
            if(!targetFile.exists())
                try {
                    targetFile.createNewFile();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            
            writer=new BufferedWriter(new FileWriter(targetFile));
            while((len=reader.read(chars))!=-1){
                writer.write(chars, 0, len);
                //注意在用缓存技术的时候,每次必须刷新
                writer.flush();
            }
            
            
            
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            try {
                if(reader!=null)
                    reader.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                if(writer!=null)
                    writer.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    public static void copy1(String srcFileName, String targetFileName) {
        BufferedReader reader=null;
        BufferedWriter writer=null;
        String buf=null;
        
        File srcFile=new File(srcFileName);
        if(!srcFile.exists())
            return;
        try {
            reader=new BufferedReader(new FileReader(srcFile));
            File targetFile=new File(targetFileName);
            if(!targetFile.exists())
                try {
                    targetFile.createNewFile();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            
            writer=new BufferedWriter(new FileWriter(targetFile));
            while((buf=reader.readLine())!=null){
                writer.write(buf);
                writer.newLine();
                //注意在用缓存技术的时候,每次必须刷新
                writer.flush();
            }
            
            
            
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            try {
                if(reader!=null)
                    reader.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                if(writer!=null)
                    writer.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

}


原创粉丝点击