ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

IO流:字节流复制视频

2020-04-21 11:55:44  阅读:242  来源: 互联网

标签:视频 字节 getTime FileOutputStream IO FileInputStream Date new


字节流:

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

标签:视频,字节,getTime,FileOutputStream,IO,FileInputStream,Date,new
来源: https://www.cnblogs.com/nbkls/p/12743512.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有