java文件切割工具
正在做一个视频通话的项目,卡在了一个问题上,需要截取视频确定问题。其中有用到要获取每一帧。于是想到了视频切割。
思路是这样的:首先得到视频的总帧数,然后获取文件的总大小,每一帧的大小=总大小/总帧数;我们把视频按照一帧的大小逐个切割,就能拿到每一帧了。
package com.larson;import java.io.BufferedInputStream;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.RandomAccessFile;/*** * @author Larson* @since 2015年9月23日*/
public class CutFile {/*** * @param fileName* 文件所在路径* @param unitSize* 每个小文件的大小* @param targetDir* 分割后小文件所在的文件夹* @param startPos* 从文件哪里开始,默认从0开始* @return* @throws Exception*/public int dofileCut(String fileName, long unitSize, String targetDir, long startPos) throws Exception {if (startPos < 0)startPos = 0;File file = new File(fileName);long size = file.length();// 总字节数int count = 0;// 小文件数long last = 0;// 剩余字节数DataInputStream dis = new DataInputStream(new BufferedInputStream(new FileInputStream(file), (int) unitSize));byte[] databuf = new byte[(int) unitSize];while (startPos < size) {count++;last = size - startPos;if (last < unitSize)databuf = new byte[(int) last];dis.read(databuf);System.out.println("count=" + count + ";pos=" + startPos + ";databuf.length=" + databuf.length);startPos = startPos + databuf.length;// 写小文件try {RandomAccessFile raFile = new RandomAccessFile(targetDir + file.getName() + "_" + count, "rw");raFile.write(databuf);raFile.close();} catch (Exception e) {throw e;}}// 记载小文件数File file1 = new File(targetDir + file.getName() + "_count");FileWriter fWriter = new FileWriter(file1);BufferedWriter bWriter = new BufferedWriter(fWriter);String string = (new Integer(count)).toString();bWriter.write(string, 0, string.length());bWriter.flush();bWriter.close();return count;}
}
入口参数传递:
package com.larson;import java.io.File;
/*** * @author Larson* @since 2015年9月23日*/
public class CutMain {public static void main(String[] args) {String fileName = "D:\\1442912080242.yuv_1";long fileLen = new File(fileName).length();long startPos = 0;long unitSize = fileLen/100;String targetDir = "D:\\1442912080242_cutted\\";try {int count = new CutFile().dofileCut(fileName, unitSize, targetDir,startPos);System.out.println("小文件数量为"+count); } catch (Exception e) {e.printStackTrace();}}
}
demo查看 附件。
java文件切割工具相关推荐
- java日志切割工具_用 Java 实现的日志切割清理工具
对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能.如果用手工方式进行清理,会花费太多时间,并且很多时候难以满足实际要求.例如:如何在每个星期六凌 ...
- java日志切割工具_JavaSwing版本的日志文件分割器
JavaSwing版本的日志文件分割器 功能: 分割比100M还大的日志为多个100M的左右的小日志 上效果图 使用方法 点击打开按钮 打开一个log文件,然后点击切割按钮 直接上代码 package ...
- 电脑查看java文件的工具_everything电脑文件搜索工具
everthing电脑搜索工具 2020/7/6 电子拆解 今天跟大家介绍一款基于JAVA的电脑搜索软件,具有效率高,搜索全的优点.话不多少,先上图 图1 这是安装好的搜索界面,下面教大家怎么安装: ...
- cloc JAVA文件_工具-cloc代码行数统计工具
cloc 代码行统计工具 计算代码行.注释行.空行量的工具.支持多种语言. 例如统计一下vue项目里的src文件夹下的代码: 安装方式 npm install -g cloc # https://ww ...
- java文件切割_Java实现文件切割拼接的实现代码
单线程实现 文件分割 在老的FAT32文件系统中,最大的单个文件大小必须保存在4G内,对于经常看电影的我这个是不能允许的.不过现在Windows有NTFS文件系统,Linux大部分发行版为Ext4文件 ...
- Java 文件转换工具类(word,html,excel,pdf,md,jpeg,png互转)
一.前言 目前支持: word 转 html doc 转 docx html 转 word html 转 pdf excel 转 pdf word 转 jpeg word 转 png markdown ...
- JAVA 如何将class文件转换成java文件
说明 若将应用部署到了服务器上或者将JAVA文件编译成了class文件之后,而原JAVA代码又因为某些原因丢失了,那么能否将Class文件转换为JAVA文件? 工具 JAVA反编译工具 jad.exe ...
- 【反编译】安卓APK反编译为java文件
[反编译]安卓APK反编译为java文件 准备工具 要反编译的apk文件, 以微信8.0.apk为例子 dex2jar 下载地址 dex2jar-2.0反编译.zip-Android文档类资源-C ...
- java控制器文件内容替换_如何用Java来进行文件切割和简单的内容过滤的实现
一 由来 去年由于项目的需求,要将一个任意一个文件制作成一个xml文件,并且需要保持文件内容本身不产生变化,还要能够将这个xml重新还原为原文件.如果小型的文件还好处理,大型的xml,比如几个G的文件 ...
- 如何用Java来进行文件切割和简单的内容过滤
一 由来 去年由于项目的需求,要将一个任意一个文件制作成一个xml文件,并且需要保持文件内容本身不产生变化,还要能够将这个xml重新还原为原文件.如果小型的文件还好处理,大型的xml,比如几个G的文件 ...
最新文章
- C++的多个有序链表合并
- 借条的注意事项,上面不能有这3个字
- 设计模式之:适配器模式
- matlab如何绘制三维隐函数?
- ueditor 编辑器再thinkphp中使用 解决转义问题
- STM32 - 定时器高级应用说明 - 多触波的实现 (N-pulse waveform generation using timer synchronization)- 01
- 利用VBA把PowerDesigner的comment复制到name
- 一些值得注意的算法题——队列、栈
- Softmax的推导以及实现
- Mathcad绘制三维曲面图
- 七.项目管理基础知识
- tig只看某个作者的提交
- 2011年国庆2天厦门到平潭岛湄洲岛自驾游
- 紫光云服务器芯片,紫光云与新华三半导体共建芯片设计云2.0 携手打造一站式云端芯片平台...
- 论OSPF中ASBR和ABR
- 校园网免认证利用IPV6轻松绕过校园WiFi网关
- 像《我是歌手》一样说我是程序员
- Verilog学习总结
- 介绍一款数据库管理软件
- postman断言—Chai.js语法总结