Java字节流ByteStream四种方式实现复制视频

需求:
把D:\hhh\1.mp4 复制到模块目录下的 1.mp4

思路:
    1:根据数据源创建字节输入流对象
    2:根据目的地创建字节输出流对象
    3:读写数据,复制图片(一次读取一个字节数组,一次写入一个字节数组)
    4:释放资源

`四种方式实现复制视频`,并记录每种方式复制视频的时间
    1:基本字节流一次读写一个字节         共耗时:52365毫秒
    2:基本字节流一次读写一个字节数组     共耗时:112毫秒
    3:字节缓冲流一次读写一个字节         共耗时:462毫秒
    4:字节缓冲流一次读写一个字节数组      共耗时:71毫秒
public class CopyAviDemo {
    public static void main(String[] args) throws IOException {
        //记录开始时间
        long startTime = System.currentTimeMillis();

        //复制视频
        //methond1();
        //methond2();
        //methond3()

        //记录结束时间
        long endTime = System.currentTimeMillis();
        System.out.println("共耗时:" + (endTime - startTime) + "毫秒");
    }

    //基本字节流,一次读写一字节
    public static void methond1() throws IOException {
        //D:\hhh\1.mp4
        // 复制到模块目录下的 1.mp4
        FileInputStream fis = new FileInputStream("D:\\hhh\\1.mp4");
        FileOutputStream fos = new FileOutputStream("31myByteStream\\1.mp4");

        int by ;
        while ((by=fis.read())!=-1){
            fos.write(by);

        }
        fos.close();
        fis.close();
    }
    //2:基本字节流一次读写一个字节数组
    public static void methond2() throws IOException {
        //D:\hhh\1.mp4
        // 复制到模块目录下的 1.mp4
        FileInputStream fis = new FileInputStream("D:\\hhh\\1.mp4");
        FileOutputStream fos = new FileOutputStream("31myByteStream\\1.mp4");

        byte[] bys = new byte[1024];
        int len;
        while ((len=fis.read(bys))!=-1){
            fos.write(bys,0,len);

        }
        fos.close();
        fis.close();
    }

    //3:字节缓冲流一次读写一个字节
    public static void method3()throws IOException{
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\hhh\\1.mp4"));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("31myByteStream\\1.mp4"));

        int by;
        while ((by=bis.read())!=-1){
            bos.write(by);
        }
        bis.close();
        bos.close();

    }
    //4:字节缓冲流一次读写一个字节数组
    public static void method4()throws IOException{
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\hhh\\1.mp4"));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("31myByteStream\\1.mp4"));

        byte[] bys = new byte[1024];
        int len;
        while ((len=bis.read(bys))!=-1){
            bos.write(bys,0,len);
        }
        bis.close();
        bos.close();

    }
}

运行截图:
在这里插入图片描述

发布了37 篇原创文章 · 获赞 0 · 访问量 323

猜你喜欢

转载自blog.csdn.net/qq_38454176/article/details/104017365