• 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的小视频,非常明显数组比字节的效率要高很多

  • 相关阅读:
    微软 安全用户教育影片 有MM 哦
    数据字典是什么?
    调用Object.GetHashCode的缺省实现
    CCharp 中委托和事件的机制和应用
    C#.NET 中的类型转换
    解决在全文搜索中搜索中文字符
    ADO.NET 获取大型 数据
    Realize the Potential of Office 2003 by Creating Smart Tags in Managed Code
    MSDN 智能客户端开发人员中心
    ADO.Net 缓冲 插入大型数据
  • 原文地址:https://www.cnblogs.com/nbkls/p/12743512.html
Copyright © 2020-2023  润新知