字节流:
    1、字节流读取数据需创建FileInputStream(路径)对象
    2、字节流写入数据需创建FileOutputStream(路径)对象

    1. FileInputStream fis = new FileInputStream("c:\\xx\\xx");
    2. FileOutputStream bos = new FileOutputStream("d:\\xx\\xx");
    3. \\ 定义一个int类型变量用于记录每次读取的字节byte
    4. int b;
    5. \\ 使用while循环读取写入
    6. \\ b等于每次读取的字节,未读取到字节则跳出循环,未读取到字节为-1
    7. while((b=fis.rede())!=-1){
    8. bos.write(b);
    9. }
    10. \\ .close释放资源
    11. fis.close();
    12. fos.close();

    字节缓冲流:
    1、字节缓冲流需先创建BufferedInputStream(File对象)对象
    2、字节缓冲流需先创建bufferedOutputStream(File对象)对象
    3、字节缓冲流底层默认创建了一个8192长度的数组用于储存字节

    数组+缓冲.png

    1. BufferedInputstream bis = new BufferedInputStream(new FileInputStream("c:\\xx\\xx"))
    2. BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("d:\\xx\\x"))
    3. \\ 定义一个int类型b用于内存中倒手
    4. int b;
    5. while((b=bis.rede())!=-1){
    6. bos.write(b)
    7. }
    8. bis.close();
    9. bis.close();

    用缓冲流(数组)来读取字符,当装满8129个字节时,进入内存,循环将每个字节导手到写入缓冲流。内存运行速度较快,能大大提升效率。

    —————————————————————————————————————————————————————————————
    缓冲流+数组(终极):

    1. BufferedInputStream bis = new BufferedInputStream("c:\\xx\\xx")
    2. BufferedOutputStream bos = new BufferedOutputStream("d:\\xx\\xx")
    3. \\ 定义一个数组长度为1024用于内存倒手
    4. int [] bytes = new byte[1024]
    5. \\ 定义len用于记录写入多少字符
    6. int len;
    7. \\ len当前等于从bytes读取出的字符长度
    8. while ((len = bis.rede(bytes))!=-1){
    9. // write写入传入数组,从索引0开始,到len有效长度结束
    10. bos.write(bytes,0,len);
    11. }
    12. bis.close();
    13. bos.close();

    将导手变量改为数组,每次导手字节为1024的数组,大大提升导手运行效率