【IO流】18 - 字节流 - 通过已有的缓冲区对象复制文件

 

package cn.itcast.io.e.bytestreambuffer;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class ByteStreamBufferCopyFileTest {

    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
        
        //复制文件,通过字节流已有的缓冲区对象。
        
        File srcFile = new File("tempfile\\file.txt");
        File destFile = new File("tempfile\\bufcopy_file.txt");
        
        //1,创建好流对象。
        FileInputStream fis = new FileInputStream(srcFile);
        FileOutputStream fos = new FileOutputStream(destFile);
        //2,创建缓冲区对象并和指定的流相关联
        BufferedInputStream bufis = new BufferedInputStream(fis);
        BufferedOutputStream bufos = new BufferedOutputStream(fos);

        byte[] buf = new byte[1024];
//        int ch = 0;
        int len = 0;
        while((len=bufis.read(buf))!=-1){//缓冲区的read方法从缓冲区中读取一个字节。
            bufos.write(buf,0,len);//将一个字节写入到缓冲区中。
            bufos.flush();//刷新缓冲区,将数据刷到目的地。
        }
    
        
        bufos.close();//缓冲区的关闭方法内部其实调用的是流的关闭方法。
        bufis.close();
    }

}

 

posted @ 2018-02-01 18:34  清风拂柳  阅读(142)  评论(0编辑  收藏  举报