導航:首頁 > 文件處理 > javazip壓縮率

javazip壓縮率

發布時間:2023-08-19 09:03:01

『壹』 java中的壓縮原理是什麼

什麼是壓縮文件? 簡單的說,就是經過壓縮軟體壓縮的文件叫壓縮文件,壓縮的原理是把文件的二進制代碼壓縮,把相鄰的0,1代碼減少,比如有000000,可以把它變成6個0 的寫法60,來減少該文件的空間。 ■怎麼壓縮文件? 首先要安裝壓縮軟體,現在比較流行的是WinRAR「一種高效快速的文件壓縮軟體(中文版)」。 其次是建立一個壓縮包:選擇你要製作成壓縮包的文件或文件夾,當然你也可也多選,方法同資源管理器,也就是按住Ctrl或Shift再選擇文件(文件夾)。 選取完畢之後,就可以單擊工具欄上的「壓縮」按鈕,在這里你可以選擇壓縮格式:RAR和ZIP。 如果你想得到較大的壓縮率,建議選擇RAR格式。 各個選項選擇好以後,單擊確定按鈕就開始製作壓縮包了,非常方便。有時候大家會遇到這個問題,就是你在一個論壇里要上傳一些文件壓縮包,壓縮包大小有3M,但是論壇限制會員上傳大小隻有2M,怎麼辦呢? 其實辦法很簡單,就是在你壓縮這個文件時,分成幾個帶分卷壓縮包,分卷包大小設置為2M即可,比如:原來文件名為123.rar(3M),壓縮成分卷包後為123.part1.rar(2M)與123.part2.rar(1M)兩個文件,這樣你就可以上傳了。 具體方法如下: 1、在要壓縮的文件上點右鍵 2、添加到壓縮文件.... 3、選常規 4、壓縮方式選最好 5、批定壓縮分卷大小(按位元組計算),1M = 1024K,1K = 1024位元組,填寫數字即可 當你下載了帶有分卷的壓縮包後,如何解壓文件呢? 具體方法如下: 1、把所有的壓縮分卷全部下載完整 2、所有分卷必須在同一個文件夾內 3、然後雙擊解壓第一個分卷,即可 註:分卷解壓的文件必須是連續的,若分卷未下載完整,則解壓時自然會提示需要下一壓縮分卷

『貳』 如何使用java壓縮文件夾成為zip包

在JDK中有一個zip工具類:

java.util.zip Provides classes for reading and writing the standard ZIP and
GZIP file formats.

使用此類可以將文件夾或者多個文件進行打包壓縮操作。

在使用之前先了解關鍵方法:

ZipEntry(String name) Creates a new zip entry with the specified name.

使用ZipEntry的構造方法可以創建一個zip壓縮文件包的實例,然後通過ZipOutputStream將待壓縮的文件以流的形式寫進該壓縮包中。具體實現代碼如下:

importjava.io.BufferedInputStream;
importjava.io.BufferedOutputStream;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.util.zip.ZipEntry;
importjava.util.zip.ZipOutputStream;
/**
*將文件夾下面的文件
*打包成zip壓縮文件
*
*@authoradmin
*
*/
publicfinalclassFileToZip{

privateFileToZip(){}

/**
*將存放在sourceFilePath目錄下的源文件,打包成fileName名稱的zip文件,並存放到zipFilePath路徑下
*@paramsourceFilePath:待壓縮的文件路徑
*@paramzipFilePath:壓縮後存放路徑
*@paramfileName:壓縮後文件的名稱
*@return
*/
publicstaticbooleanfileToZip(StringsourceFilePath,StringzipFilePath,StringfileName){
booleanflag=false;
FilesourceFile=newFile(sourceFilePath);
FileInputStreamfis=null;
BufferedInputStreambis=null;
FileOutputStreamfos=null;
ZipOutputStreamzos=null;

if(sourceFile.exists()==false){
System.out.println("待壓縮的文件目錄:"+sourceFilePath+"不存在.");
}else{
try{
FilezipFile=newFile(zipFilePath+"/"+fileName+".zip");
if(zipFile.exists()){
System.out.println(zipFilePath+"目錄下存在名字為:"+fileName+".zip"+"打包文件.");
}else{
File[]sourceFiles=sourceFile.listFiles();
if(null==sourceFiles||sourceFiles.length<1){
System.out.println("待壓縮的文件目錄:"+sourceFilePath+"裡面不存在文件,無需壓縮.");
}else{
fos=newFileOutputStream(zipFile);
zos=newZipOutputStream(newBufferedOutputStream(fos));
byte[]bufs=newbyte[1024*10];
for(inti=0;i<sourceFiles.length;i++){
//創建ZIP實體,並添加進壓縮包
ZipEntryzipEntry=newZipEntry(sourceFiles[i].getName());
zos.putNextEntry(zipEntry);
//讀取待壓縮的文件並寫進壓縮包里
fis=newFileInputStream(sourceFiles[i]);
bis=newBufferedInputStream(fis,1024*10);
intread=0;
while((read=bis.read(bufs,0,1024*10))!=-1){
zos.write(bufs,0,read);
}
}
flag=true;
}
}
}catch(FileNotFoundExceptione){
e.printStackTrace();
thrownewRuntimeException(e);
}catch(IOExceptione){
e.printStackTrace();
thrownewRuntimeException(e);
}finally{
//關閉流
try{
if(null!=bis)bis.close();
if(null!=zos)zos.close();
}catch(IOExceptione){
e.printStackTrace();
thrownewRuntimeException(e);
}
}
}
returnflag;
}

publicstaticvoidmain(String[]args){
StringsourceFilePath="D:\TestFile";
StringzipFilePath="D:\tmp";
StringfileName="12700153file";
booleanflag=FileToZip.fileToZip(sourceFilePath,zipFilePath,fileName);
if(flag){
System.out.println("文件打包成功!");
}else{
System.out.println("文件打包失敗!");
}
}

}

『叄』 如何在java中執行zip壓縮命令

publicclassZipFile{

publicstaticvoidmain(String[]args)throwsException{
//zip-rqq.zipWEB-INF-x'*.DS_Store'

ZipFilezipFile=newZipFile();
zipFile.start("zip-rqq.zipWEB-INF-x'*.DS_Store'");
}

privatesynchronizedvoidstart(Stringcmd)throwsException{
Processpro=null;
pro=Runtime.getRuntime().exec(cmd);
newDoOutput(pro.getInputStream()).start();
newDoOutput(pro.getErrorStream()).start();
}

{
publicInputStreamis;
publicDoOutput(InputStreamis){
this.is=is;
}
publicvoidrun(){
BufferedReaderbr=newBufferedReader(newInputStreamReader(this.is));
Stringstr=null;
StringBuildersb=newStringBuilder();
try{
while((str=br.readLine())!=null){
sb.append(str+" ");
}
System.out.println(sb.toString());
}catch(Exceptione){
e.printStackTrace();
}finally{
if(br!=null){
try{
br.close();
}catch(Exceptione){
e.printStackTrace();
}
}
}
}
}

}

『肆』 java怎麼實現zip分卷壓縮有關問題

直接用java 調用wondows 的cmd 就行了, 至於這個具體的命令 是7-zip提供的,這個需要去看看7-zip的文檔.

『伍』 RAR與ZIP的區別

zip將目錄表放在壓縮包的最後,其中列出了包中每一個文件的屬性(文件名、文件大小等)和其在包中存放的位置,如果需要直接訪問包中的某個文件,可以根據這個目錄直接進行定位。RAR沒有目錄表,所有文件按照順序依次壓縮存放祥敏物。這樣導致的區別就是:隨機訪問文件時,zip的速度要快於rar,如果趕上文件在壓縮包的最後且包內文件很多,rar的速度就顯得很慢了(其實也不過幾秒鍾)。但是順序訪問時,rar的速度就要快於zip,因為不用反復去查目錄。

分卷壓縮
在DOS時代,由於軟盤容量很小,因此分卷壓縮是很必要的。但是由於zip將文件目錄表放在壓縮包的最後,導致每解壓一張盤,都要先將最後一張盤插進去一次讀取目錄,而且如果最後一張盤損壞,所有文件都無法被解壓。而rar由於沒有文件目錄表,就沒有這個問題。到了windows時代,zip則徹底放棄了分卷壓縮功能。

固實壓縮方式
固實壓縮文件是rar的一種特殊壓縮方式存儲的壓縮文件,它把壓縮文件中的全部文件都當成一個連續數據流來看待,從而找到更多的冗餘信息(Flash文件也採用了類似的技術)。壓縮前會對文件進行重新排序,將擁有相似結構的文件排列在一起。這樣對於大量類似的文件,壓縮比有顯著的提高。但是缺點也很明顯的:隨機解壓任何一個文件都要從壓縮包頭部開始分析,速度較慢;對已有固實壓縮包更新時速度較慢;包中任何一個文件損壞後,都不能解壓出全部謹液文件。

安全性
zip和rar格式中均提供了密碼保護功能,但是密碼保護的安全強度不同。由於zip格式開放、代碼開源,因此當出現「已知明文攻擊法」之後,對zip的挑戰很大。rar為了避免通過猜測文件名來使用「已知明文攻擊法」,增加了「加密文件名」選項,並且使用了 AES-128 標准加密。
在數據安全性方面,rar支持「恢復記錄」,在介質物理損壞或其它原因造成數據丟失時,可以按照「恢復記錄」嘗試對數據進行修復,而zip格式無恢復記錄。ZIP 格式使用私有加密演算法。 RAR 壓縮文件使用更強大的 AES-128 標准加密。如果你需要加密重要的信息,選擇 RAR 壓縮文件格式會比較好一些。為了確實的安全性,密碼長度請最少要 8 個字元。不要使用任何語言的單詞作為密碼,最好是任意的隨機組合字元和數字,並且要注意密碼的大小寫。請記住,如果你遺失你的密碼,你將無法取出加密的文件,就算是 WinRAR 的作者本身也無法解壓加密過的文件。

開放性
zip格式拿伏公開、代碼開源,而rar完全保密,不利於跨平台。java的jar包內核來自zip演算法,而png格式的出現是為了避免gif格式的專利費,所以也採用了zip核心,壓縮效果比gif的lzw更強。

『陸』 java gzipoutputstream壓縮比例大概是多少

It is my decision,It is my life.
JAVA對字元串的壓縮與解壓縮

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;

public class ZipUtils {

/**

* 使用gzip進行壓縮
*/
public static String gzip(String primStr) {
if (primStr == null || primStr.length() == 0) {
return primStr;
}

『柒』 使用java自帶zip或者壓縮工具壓縮文件,影響文件壓縮率的因素有哪些

我們通常都是用7-Zip,WinRar或好壓其實幾乎
7z壓縮率是比較高的winrar更通用

說好壓壓縮比7z格式圖片預覽幾乎不用解壓,可以看到圖片

『捌』 java如何直接解壓zip格式二進制流

Java代碼
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;

class ZipTest {
// 壓縮
public static void zip(String zipFileName, String inputFile)
throws Exception {
File f = new File(inputFile);
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(
zipFileName));
zip(out, f, f.getName());
System.out.println("zip done");
out.close();

『玖』 java 壓縮比

ZipOutputStream

裡面有
setMethodpublic void setMethod(int method)設置用於後續條目的默認壓縮方法。只要沒有為單個 ZIP 文件條目指定壓縮方法,並且其初始設置為 DEFLATED 時,就使用此默認值。

參數:method - 默認壓縮方法
拋出:IllegalArgumentException - 如果指定的壓縮方法無效
setLevelpublic void setLevel(int level)為後續的 DEFLATED 條目設置壓縮級別。默認設置是 DEFAULT_COMPRESSION。

參數:level - 壓縮級別 (0-9)
拋出:IllegalArgumentException - 如果壓縮級別無效

閱讀全文

與javazip壓縮率相關的資料

熱點內容
壓縮卷一直轉 瀏覽:976
初一編程小程序怎麼做 瀏覽:826
bt軟體文件夾名稱 瀏覽:157
unix創建命令 瀏覽:622
devc是多少位的編譯器 瀏覽:980
怎麼樣能快點升安卓系統 瀏覽:976
奇跡mu用什麼伺服器 瀏覽:605
如何讓軟體在多個安卓系統上運行 瀏覽:573
java判斷半形 瀏覽:880
java判斷正負 瀏覽:320
刷頭條程序員的日常 瀏覽:102
吉林程序員吐槽 瀏覽:243
單片機溫度范圍 瀏覽:419
程序員為什麼素質低 瀏覽:897
可愛的程序員小姐姐 瀏覽:147
伺服器上網站的地址 瀏覽:800
蘋果平板如何找到app資源庫 瀏覽:322
阿里雲可以雲伺服器地址 瀏覽:249
熊貓繪畫app如何導入圖片 瀏覽:556
如何自己編輯手機app 瀏覽:926