java視頻文件壓縮代碼,視頻壓縮技術(shù) java

java實(shí)現(xiàn)壓縮視頻文件,但是壓縮后并解壓,提示文件損壞,我該怎么修改代碼?

(1)網(wǎng)絡(luò)傳輸狀況不好(如斷線過(guò)多,開(kāi)的線程過(guò)多,服務(wù)器人太多導(dǎo)致不能連接太多等)導(dǎo)致下載下來(lái)的文件損壞!

目前成都創(chuàng)新互聯(lián)公司已為數(shù)千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、淇縣網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

(2)站點(diǎn)提供的的RAR壓縮包本來(lái)就是損壞的(這個(gè)本站可以保證,所上傳的視頻及軟件等都經(jīng)過(guò)好幾遍測(cè)試,絕對(duì)沒(méi)問(wèn)題)。

(3)所使用的下載工具不夠完善,比如有的下載工具多開(kāi)了幾個(gè)線程后,下載的收尾工作很慢,有些時(shí)候下載到99%時(shí)數(shù)據(jù)就不再傳輸了,一定要人工操作才能結(jié)束(先停止下載接著再開(kāi)始)。筆者就碰到過(guò)好幾次這樣的情況。結(jié)果是文件下載下來(lái)以后解壓縮到快結(jié)束時(shí)CRC出錯(cuò)。

解決方法:本站為防止這樣的事情發(fā)生,在每個(gè)壓縮包里又加了一個(gè)備份,防止因以上原因?qū)е碌南螺d后不能用,還得重新下載的問(wèn)題,只要你下載下來(lái)的那個(gè)壓縮包里的備份是好的那就能把壓縮包里的文件恢復(fù)能用。

步驟一:雙擊打開(kāi)需要解壓修復(fù)的壓縮包,選擇:工具——修復(fù)壓縮文件。

步驟二:出現(xiàn)下邊圖片的修復(fù)框,等待修復(fù)完成,關(guān)閉窗口及解壓縮窗口就可以了。

步驟三:這時(shí)你會(huì)發(fā)現(xiàn)你需要解壓的壓縮包旁邊多了一個(gè)壓縮包,名稱(chēng)為:fixed.***(你下載的視頻名稱(chēng)).rar ,這個(gè)壓縮包就是修復(fù)后的解壓縮包,如果修復(fù)成功,解壓這個(gè)名稱(chēng)為:fixed.***(你下載的視頻名稱(chēng)).rar 的壓縮包就可以了。

如果修復(fù)不成功,你再修復(fù)幾次看看,如果不行,只有再重新下載了

關(guān)于Java的解壓縮的代碼?

package?com.javatest.techzero.gui;??

import?java.io.File;

import?java.io.FileInputStream;

import?java.io.FileOutputStream;

import?java.io.InputStream;

import?java.io.OutputStream;

import?java.util.zip.ZipEntry;

import?java.util.zip.ZipFile;

import?java.util.zip.ZipInputStream;?

public?class?ZipFileDemo?{

@SuppressWarnings("resource")

public?static?void?main(String?args[])?throws?Exception?{

File?file?=?new?File("d:"?+?File.separator?+?"test.zip");

File?outFile?=?null;

ZipFile?zipFile?=?new?ZipFile(file);

ZipInputStream?zipInput?=?new?ZipInputStream(new?FileInputStream(file));

ZipEntry?entry?=?null;

InputStream?input?=?null;

OutputStream?out?=?null;

while?((entry?=?zipInput.getNextEntry())?!=?null)?{

System.out.println("開(kāi)始解壓縮"?+?entry.getName()?+?"文件。。。");

outFile?=?new?File("d:"?+?File.separator?+?entry.getName());

if?(!outFile.getParentFile().exists())?{

outFile.getParentFile().mkdir();

}

if?(!outFile.exists())?{

outFile.createNewFile();

}

input?=?zipFile.getInputStream(entry);

out?=?new?FileOutputStream(outFile);

int?temp?=?0;

while?((temp?=?input.read())?!=?-1)?{

SPAN?style="WHITE-SPACE:?pre"?/SPAN//System.out.println(temp);

out.write(temp);

}

input.close();

out.close();

}

System.out.println("Done!");

}

}

僅供參考

求一個(gè)JAVA的壓縮程序源代碼。

package com.io2.homework;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.zip.ZipEntry;

import java.util.zip.ZipOutputStream;

/*壓縮文件夾*/

public class MyMultipleFileZip

{

private String currentZipFilePath = "F:/MyZip.zip";

private String sourceFilePath;

private ZipOutputStream zos;

private FileInputStream fis;

public MyMultipleFileZip(String sourceFilePath)

{

try

{

this.sourceFilePath = sourceFilePath;

zos = new ZipOutputStream(new FileOutputStream(currentZipFilePath));

//設(shè)定文件壓縮級(jí)別

zos.setLevel(9);

} catch (FileNotFoundException e)

{

e.printStackTrace();

}

}

// 在當(dāng)前條目中寫(xiě)入具體內(nèi)容

public void writeToEntryZip(String filePath)

{

try

{

fis = new FileInputStream(filePath);

} catch (FileNotFoundException e1)

{

e1.printStackTrace();

}

byte[] buff = new byte[1024];

int len = 0;

try

{

while ((len = fis.read(buff)) != -1)

{

zos.write(buff, 0, len);

}

} catch (IOException e)

{

e.printStackTrace();

}finally

{

if (fis != null)

try

{

fis.close();

} catch (IOException e)

{

e.printStackTrace();

}

}

}

// 添加文件條目

public void addFileEntryZip(String fileName)

{

try

{

zos.putNextEntry(new ZipEntry(fileName));

} catch (IOException e)

{

e.printStackTrace();

}

}

public void addDirectoryEntryZip(String directoryName)

{

try

{

zos.putNextEntry(new ZipEntry(directoryName + "/"));

} catch (IOException e)

{

e.printStackTrace();

}

}

// 遍歷文件夾

public void listMyDirectory(String filePath)

{

File f = new File(filePath);

File[] files = f.listFiles();

if(files!=null)

{

for (File currentFile : files)

{

// 設(shè)置條目名稱(chēng)(此步驟非常關(guān)鍵)

String entryName= currentFile.getAbsolutePath().split(":")[1].substring(1);

// 獲取文件物理路徑

String absolutePath = currentFile.getAbsolutePath();

if (currentFile.isDirectory())

{

addDirectoryEntryZip(entryName);

//進(jìn)行遞歸調(diào)用

listMyDirectory(absolutePath);

}

else

{

addFileEntryZip(entryName);

writeToEntryZip(absolutePath);

}

}

}

}

// 主要流程

public void mainWorkFlow()

{

listMyDirectory(this.sourceFilePath);

if(zos!=null)

try

{

zos.close();

} catch (IOException e)

{

e.printStackTrace();

}

}

public static void main(String[] args)

{

new MyMultipleFileZip("F:/fountainDirectory").mainWorkFlow();

}

}

當(dāng)前題目:java視頻文件壓縮代碼,視頻壓縮技術(shù) java
當(dāng)前URL:http://muchs.cn/article42/hcipec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、用戶體驗(yàn)品牌網(wǎng)站制作、服務(wù)器托管、定制網(wǎng)站、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)