日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 视频合并_java 实现分段视频合并

發布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 视频合并_java 实现分段视频合并 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原理很簡單就是把多個視頻文件的內容按順序寫到一個視頻文件中

代碼如下:

public static void CombineFile(String path,String tar) throws Exception {

try {

File dirFile = new File(path);

FileInputStream fis;

FileOutputStream fos = new FileOutputStream(tar);

byte buffer[] = new byte[1024 * 1024 * 2];//一次讀取2M數據,將讀取到的數據保存到byte字節數組中

int len;

if(dirFile.isDirectory()) { //判斷file是否為目錄

String[] fileNames = dirFile.list();

Arrays.sort(fileNames, new StringComparator());//實現目錄自定義排序

for (int i = 0;i

System.out.println("D:\\tempfile\\"+fileNames[i]);

fis = new FileInputStream("D:\\tempfile\\"+fileNames[i]);

len = 0;

while ((len = fis.read(buffer)) != -1) {

fos.write(buffer, 0, len);//buffer從指定字節數組寫入。buffer:數據中的起始偏移量,len:寫入的字數。

}

fis.close();

}

}

fos.flush();

fos.close();

}catch (IOException e){

e.printStackTrace();

} finally {

System.out.println("合并完成!");

}

}

在讀取要合并的文件時,需要按拆分后的順序讀取文件,這是就需要文件自定義目錄排序

用Java列出某個文件目錄的文件列表是很容易實現的,只用調用File類中的list()方法即可。

代碼如下:

/此類實現Comparable接口

static class StringComparator implements Comparator {

@Override

public int compare(String s1, String s2) {

if (returnDouble(s1) < returnDouble(s2))

return -1;

else if (returnDouble(s1) > returnDouble(s2))

return 1;

else

return 0;

}

}

public static double returnDouble(String str){

StringBuffer sb = new StringBuffer();

for(int i=0;i

if(Character.isDigit(str.charAt(i)))

sb.append(str.charAt(i));

else if(str.charAt(i)=='.'&&i

sb.append(str.charAt(i));

else break;

}

if(sb.toString().isEmpty())

return 0;

else

return Double.parseDouble(sb.toString());

}

由類StringComparator實現Comparator接口就可以改變String類型的默認排序方式,其中compare是需要復寫的方法,類似于Comparable接口中的compareTo方法。

returnDouble是寫的一個靜態方法,用來返回某個文件名字符串前面的數字編號,如"1.1.txt"返回的就是"1.1",寫的時候老是出現越界異常,后來終于改成功了,可能寫得有點復雜了。

這樣再調用Arrays類中的sort(T[]?a, Comparator super T>?c)?方法就可以對文件名排序了。

總結

以上是生活随笔為你收集整理的java 视频合并_java 实现分段视频合并的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。