黑马程序员技术交流社区
标题:
毕老师第二十天切割文件,如何切割视频?
[打印本页]
作者:
Eric1225
时间:
2014-10-17 21:18
标题:
毕老师第二十天切割文件,如何切割视频?
刚看到毕老师第20天视频的最后一集,提到切割视频。想问下具体怎么实现!
作者:
哈达洋
时间:
2014-10-17 23:39
本帖最后由 哈达洋 于 2014-10-18 00:01 编辑
<div class="blockcode"><blockquote>import java.io.*;
import java.util.*;
class VideoSplit
{
public static void main(String[] args) throws Exception
{
File file = new File("g:\\超凡蜘蛛侠2.BD.720p.中英双字幕.rmvb");
//split(file);
merge();
}
public static void merge() throws Exception
{
ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();
for(int i=0;i<4;i++)
{
al.add(new FileInputStream("g:\\part\\"+i+".part"));
}
Iterator<FileInputStream> it = al.iterator();
Enumeration<FileInputStream> en = new Enumeration<FileInputStream>(){
public boolean hasMoreElements()
{
return it.hasNext();
}
public FileInputStream nextElement()
{
return it.next();
}
};
SequenceInputStream sis = new SequenceInputStream(en);
BufferedOutputStream bos =
new BufferedOutputStream(new FileOutputStream("g:\\part\\spilderman.rmvb"));
byte[] buf = new byte[1024*1024*10];
int len=0;
while((len=sis.read(buf))!=-1)
{
bos.write(buf,0,len);
bos.flush();
}
bos.close();
sis.close();
}
public static void split(File file) throws Exception
{
if(!file.exists())
{
System.out.println("文件不存在");
return;
}
else
{
BufferedInputStream bis =
new BufferedInputStream(new FileInputStream(file));
//定义一个10M的缓冲,虽然BufferedInputStream自带了缓冲,
//但是这里再定义一个缓冲,在写入的时候,会更快。
byte[] buf1 = new byte[1024*1024*10];
BufferedOutputStream bos =null;
int len=0;
int count=0;
while((len=bis.read(buf1))!=-1)
{
if(count%50==0)//按500M分割
{
bos = new BufferedOutputStream(new FileOutputStream("g:\\part\\"+(count/50)+".part"));
}
count++;
bos.write(buf1,0,len);
bos.flush();
if(count%50==0)
{
bos.close();
}
}
bis.close();
bos.close();
}
}
}
复制代码
作者:
suoxidong
时间:
2014-10-18 08:14
QQ影音里面有功能可以切割视频,合并视频功能
作者:
郑飞
时间:
2014-10-18 20:49
切什么不都是大同小异 老毕有讲过吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2