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

  • 相关阅读:
    【转载】网站服务器运维记实:阿里云1核2G突发性能t5服务器突然变得卡顿
    【转载】C#中自定义Sort的排序规则IComparable接口
    【转载】C#将图片转换为二进制流调用
    【转载】ASP.NET MVC重写URL制作伪静态网页,URL地址以.html结尾
    Java通过反射机制修改类中的私有属性的值
    Android -- 分享功能和打开指定程序
    Java存储密码用字符数组
    java笔试题(3)
    Java中的String与常量池
    Android -- 距离感应器控制屏幕灭屏白屏
  • 原文地址:https://www.cnblogs.com/nbkls/p/12743512.html
Copyright © 2011-2022 走看看