zoukankan      html  css  js  c++  java
  • IO流:字节流复制视频

    字节流:

    字节输出流:OutputStream

    OutputStream有很多子类,其中子类FileOutputStream可用来写入数据到文件。

    FileOutputStream,即文件输出流是用于将数据写入 File的输出流。

      FileOutputStream(String name):创建一个具有指定名称的文件中写入数据的输出文件流

    字节输入流:InputStream

       int read():读取一个字节并返回,没有字节返回-1.

      int read(byte[]): 读取一定量的字节数,并存储到字节数组中,返回读取到的字节数。

    InputStream有很多子类,其中子类FileInputStream可用来读取文件内容。

    FileInputStream 从文件系统中的某个文件中获得输入字节。

    下面是一个字节流复制视频的小案例:

    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Date;

    public class Work01 {
     public static void main(String[] args) throws IOException {
      //一个数组一个数组复制
      Date date=new Date();
      System.out.println("开始时间:"+date.getTime());
      //明确数据源
      FileInputStream fis=new FileInputStream("D:\io1227\video\AMG_GT_ALL_4_original.mp4");
      //明确目的地
      FileOutputStream fos=new FileOutputStream("D:\io1227\mp4.mp4");
      //开始复制
      byte[] bytes=new byte[1024];
      int len=0;
      while((len=fis.read(bytes))!=-1){
       fos.write(bytes);
      }
      fis.close();
      fos.close();
      Date date2=new Date();
      System.out.println("数组复制结束时间:"+date2.getTime());
      //一个字节一个字节复制
      FileInputStream fis2=new FileInputStream("D:\io1227\video\AMG_GT_ALL_4_original.mp4");
      FileOutputStream fos2=new FileOutputStream("D:\io1227\mp5.mp4");
      int len2=0;
      while((len2=fis2.read())!=-1){
       fos2.write(len2);
      }
      fis2.close();
      fos2.close();
      Date date3=new Date();
      System.out.println("字节复制结束时间:"+date3.getTime());
      System.out.println("数组复制用时:"+(date2.getTime()-date.getTime())+"毫秒");
      System.out.println("字节复制用时:"+(date3.getTime()-date2.getTime())+"毫秒");
     }
    }

    这是复制了一个大小为2330KB的小视频,非常明显数组比字节的效率要高很多

  • 相关阅读:
    实验0 了解和熟悉操作系统
    软件工程感想
    递归下降分析法--算数语法分析
    有限自动机的构造与识别
    评论
    文法解释
    【编译CEF3】2017-07 添加支持mp3 mp4的编译日记
    Visual Studio 2015/2013安装失败:Microsoft Visual Studio 2015 Shell (Minimum) Interop Assemblies 安装时发生严重错误
    [RAD Studio 10.2 Tokyo] Error:java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major错误解决
    Delphi 编译出来的程序被小红伞报病毒 TR/Spy.Banker.Gen4 [trojan]
  • 原文地址:https://www.cnblogs.com/nbkls/p/12743512.html
Copyright © 2011-2022 走看看