缓冲字节流(处理流)BufferedInputStream、BufferedOutputStream

【1】读一个字节写一个字节

 

 【2】利用缓冲数组

 

 【3】利用缓冲区

 

  想要完成上面的效果单纯靠FileInputStream、FileOutputStream是不可以完成的,这个时候就需要功能的加强,

这个加强就需要引入新的流(在FileInputStream、FileOutputStream外面再套一层流):BufferedInputStream、BufferedOutputStream---》处理流

package com.msb.io02;

import java.io.*;

/**
 * @author : liu
 * 日期:14:26:59
 * 描述:IntelliJ IDEA
 * 版本:1.0
 */
public class Test06 {
    //这是一个main方法:是程序的入口
    public static void main(String[] args) throws IOException {
        //1.有一个源文件
        File file = new File("D:\\lol.jpg");
        //2.有一个目标文件
        File file2 = new File("D:\\lol2.jpg");
        //3.有一个输入的管道怼到源文件上面
        FileInputStream fis=new FileInputStream(file);
        //4.有一个输出的管道怼到目标件上面
        FileOutputStream fos = new FileOutputStream(file2);
        //5.功能加强,在FileInputStream外面套一个管:BufferedInputStream
        BufferedInputStream bis=new BufferedInputStream(fis);
        //6.功能加强,在FileOutputStream外面套一个管:BufferedOutputStream
        BufferedOutputStream bos=new BufferedOutputStream(fos);
        //7.开始动作
        byte[] b=new byte[1024*6];
        int len = bis.read(b);
        while (len!=-1){
            bos.write(b,0,len);
            /*bos.flush();底层已经帮我们做了刷新缓冲区的操作,不用我们手动完成:底层调用flushBuffer()*/
            len = bis.read(b);
        }
        //8.关闭流
        //倒着关,如果处理流包裹着节点流的话,那么其实只要关闭高级流(处理流),那么里面的字节流也会随之被关闭
        bos.close();
        bis.close();

    }
}

 

posted @ 2022-11-15 15:46  爱的加勒比  阅读(60)  评论(0)    收藏  举报