利用Java缓冲流复制视频文件
2021/9/19 17:34:49
本文主要是介绍利用Java缓冲流复制视频文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
缓冲输入流 BufferedInputStream,缓冲输出流 BufferedOutputStream。
缓冲流内部有一个缓冲区,缓冲区是一个字节数组,默认大小为8192。
缓冲流不直接调用系统方法进行读写操作,而是通过传入的输入输出流对象来实现。
缓冲流对象实例化必须传入输入输出流(InputStream / OutputStream)对象作为参数,或者其子类对象如(FileInputStream / FileOutputStream),可选参数size为指定缓冲区大小。
缓冲流复制视频文件示例
public class CopyVideoTest { public static void main(String[] args) throws IOException { //源文件必须存在,目的文件可以不存在,输出流会自动创建 File file1 = new File("C:\\Users\\Administrator\\Desktop\\FileTest\\测试视频1.mp4"); File file2 = new File("C:\\Users\\Administrator\\Desktop\\FileTest\\测试视频2.mp4"); FileInputStream fis = null; FileOutputStream fos = null; BufferedInputStream bis = null; BufferedOutputStream bos = null; try { //实例化流对象并进行绑定 fis = new FileInputStream(file1); fos = new FileOutputStream(file2); bis = new BufferedInputStream(fis); bos = new BufferedOutputStream(fos); byte[] bytes = new byte[1024]; //如果len==-1,表示已经读取完文件。如果len!=-1,表示这次实际读取的字节数目 int len = -1; do { len = bis.read(bytes); //尝试读取一个数组长度的数据 if (len!=-1){ //读取出数据后写入目标文件 bos.write(bytes,0,len); } }while (len!=-1); //文件没读取完就继续 }catch (IOException e){ e.printStackTrace(); }finally { //关闭流,先关闭缓冲流,再关闭输入输出流 if (bis!=null){ bis.close(); } if (bos!=null){ bos.close(); } if (fis!=null){ fis.close(); } if (fos!=null){ fos.close(); } } } }
这篇关于利用Java缓冲流复制视频文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24鸿蒙原生开发手记:03-元服务开发全流程(开发元服务,只需要看这一篇文章)
- 2024-11-24细说敏捷:敏捷四会之每日站会
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解