单线程完结爱色军团
文献分割
在老的FAT32文献系统中,最大的单个文献大小必须保存在4G内,关于往往看电影的我这个是不成允许的。不外面前Windows有NTFS文献系统,Linux大部分刊行版为Ext4文献系统,最大单个文献大小能大于4G。不外这二者并不成兼容。。式样化NTFS的U盘Linux不成识别,式样化Ext4的U盘Windows不成识别,只可用老的FAT32兼容二者。是以将文献分割,再进行拼接就很进击,文献经由分割了在收罗上传输就特地轻视,也能开多线程对每部分进行HASH提升经管恶果。
最近看的BradPitt的《狂怒》
最初:对文献进行分割需要详情每一部分的大小,假定上头的 Fury.mkv 文献大小为 280M ,分割每一块确立默许大小为 64M ,是以:
关于临了一块,一般小于等于设定好的每块默许大小。 每块大小确立好了,接下来,就需要将文献的旅途获取,代码中搭建输入流,将文献读入内存缓冲区中,再搭建输出流,将缓冲区输出到新的分割文献中。 再接下来完结就很轻视了。 新建一个 FileSlice
类:有切割时刻,拼接时刻。
接下来完结单线程的分割时刻: 用图解的话应该是这么:
爱色军团
代码完结: 干预函数最初判断文献是否存在:
接下来判断每块大小是否使用默许值:
将旅途疏导为文献对象,再绸缪将分割些许块:
开动化输入输出流,出错输出空虚信息,复返false,获取刻下目次:
接下来读取文献,而况区分输出到各个part文献中:
该函数也曾完结罢了,接下来测试(由于电影Fury有14G。。太大了。。如故换个吧):
我是年老大第5集,有729M,大约能分个12个part吧。
运行戒指:
分割文献我是年老大.Kyou.kara.Ore.wa.Ep05.Chi_Jap.HDTVrip.1280X720.mp4,765321889字节,总用时16335.0ms
你好迷人 户外速率如故挺慢的。。 下次如故换成多线程来完结,再来测试下速率。在单线程情况下一个粗拙的40分钟日剧皆要15-30s傍边,若是mkv式样的电影皆要好真切。。不外其实极限应该不在CPU中实施的速率,而是在硬盘IO中,如果是粗拙硬盘那么就算是多线程也应该提速不了些许。。
文献拼接
这个就很轻视了,和分割相背就OK。 平直上竣工代码:
再测试刚刚分割好的我是年老大第5集
戒指输出,用12s傍边,还行。
拼接12个part,用时12147.0ms
翻开播放毫无问题,临了截张图。
未完待续。。下次来使用多线程进行完结。
以上即是本文的统统实质爱色军团,但愿对大家的学习有所匡助,也但愿大繁多多撑捏剧本之家。
您可能感兴味的著作: Java怎样将大文献切割成小文献 java完结切割wav音频文献的时刻详解【附外部jar包下载】 Java完结大文献的切割与归并操作示例 Java编程完结用hash时刻切割文献 java 完结切割文献和归并文献的功能 使用logback竖立按天和文献大小切割输出日记