中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

java壓縮軟件代碼 Java壓縮

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

package com.io2.homework;

成都創(chuàng)新互聯(lián)是一家專業(yè)提供呼瑪企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、成都做網(wǎng)站、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為呼瑪眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

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è)定文件壓縮級別

zos.setLevel(9);

} catch (FileNotFoundException e)

{

e.printStackTrace();

}

}

// 在當(dāng)前條目中寫入具體內(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è)置條目名稱(此步驟非常關(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();

}

}

Java數(shù)據(jù)壓縮格式程序設(shè)計(jì)方法

GZIP壓縮格式簡介在JDK API中 同樣定義了多種類型用于創(chuàng)建和解除GZIP壓縮格式數(shù)據(jù)文件的通用對象和方法 用于基于JDK編寫GZIP壓縮數(shù)據(jù)管理程序 GZIP壓縮格式是在Sun Solaris操作系統(tǒng)中廣泛采用的壓縮數(shù)據(jù)格式 由于在數(shù)據(jù)壓縮過程中可以采用多種類型的壓縮算法 因此 壓縮文件的壓縮比很高 另外 在創(chuàng)建的壓縮文件中 定義了用于表述時(shí)間和文件屬主的時(shí)戳(Time Stamp) 可以使文件方便地在網(wǎng)絡(luò)中傳輸和交換 GZIP壓縮數(shù)據(jù)文件由一系列的數(shù)字構(gòu)成 而各數(shù)字對應(yīng)如下描述壓縮文件信息的字段 ID 缺省值 用于標(biāo)識GZIP壓縮格式 ID 缺省值 用于標(biāo)識GZIP壓縮格式 CM 采用的壓縮方法 其值為 ~ 是保留值 標(biāo)識采用 deflate 壓縮方法 FLG 用于標(biāo)識各占用位的標(biāo)志 MTIME 記錄了最近修改時(shí)間 XFL 用于標(biāo)識采用壓縮算法的選項(xiàng) OS 定義了操作系統(tǒng)類型 XLEN 定義了附加信息段的長度 M 壓縮文件說明信息 CRC 記錄了CRC 算法采用的循環(huán)冗余校驗(yàn)值 上述信息完整描述了GZIP壓縮格式數(shù)據(jù) 當(dāng)然 基于JDK開發(fā)的壓縮數(shù)據(jù)管理程序 不需要明確知道上述壓縮數(shù)據(jù)定義格式 只需要?jiǎng)?chuàng)建相應(yīng)的管理對象并調(diào)用這些對象中定義的方法即可 JDK API中ZIP壓縮格式支持對象GZIP壓縮格式是在JDK API中定義支持的另外一種數(shù)據(jù)壓縮格式 由上面介紹的GZIP格式數(shù)據(jù)壓縮方法可知 GZIP壓縮格式具有更大的壓縮比 因此 在Unix操作系統(tǒng)中 這種類型的數(shù)據(jù)壓縮形式的應(yīng)用十分普及 與JDK API對ZIP壓縮格式的支持不同 在JDK API中 只定義了GZIPInputStream和GZIPOutputStream兩種類型的流(Stream)對象 用于在基于流的數(shù)據(jù)傳輸過程中實(shí)現(xiàn)數(shù)據(jù)壓縮 這兩個(gè)對象的繼承定義結(jié)構(gòu)如下所示 java lang Object|+ java io InputStream|+ java io FilterInputStream|+ java util zip InflaterInputStream|+ java util zip GZIPInputStream(java util zip GZIPOutputStream)以采用GZIP格式進(jìn)行數(shù)據(jù)輸入處理GZIPInputStream對象為例 由上述對象的繼承定義結(jié)構(gòu)可以看出 該對象繼承了InflaterInputStream流對象 需要說明的是 在ZIP壓縮包中 定義了Inflater和Deflater兩個(gè)對象 用于基于ZLIB壓縮庫實(shí)現(xiàn)多種格式的數(shù)據(jù)壓縮和解壓縮 因此 InflaterInputStream流對象的作用是采用ZLIB庫作為數(shù)據(jù)壓縮管理的引擎 而GZIPInputStream對象則進(jìn)一步將流的數(shù)據(jù)加工進(jìn)行細(xì)化 用于讀取GZIP格式的壓縮數(shù)據(jù) 同理 GZIPOutputStream對象用于創(chuàng)建GZIP格式的壓縮數(shù)據(jù)文件 下面 將對兩個(gè)對象的定義內(nèi)容進(jìn)行說明 ●GZIPInputStream對象定義結(jié)構(gòu) java util zip GZIPInputStream靜態(tài)成員變量 protected CRC crc 用于說明采用的數(shù)據(jù)壓縮算法為CRC protected boolean eos 說明輸入流對象結(jié)束讀取輸入數(shù)據(jù) 構(gòu)造方法 GZIPInputStream(InputStream in) 采用默認(rèn)的緩沖區(qū)字節(jié)數(shù)創(chuàng)建輸入流對象 GZIPInputStream(InputStream in int size) 創(chuàng)建由整數(shù)類型變量size指定緩沖區(qū)字節(jié)數(shù)的輸入流對象 成員方法 該對象只定義了如下兩個(gè)成員方法 void close() 關(guān)閉輸入流對象 int read(byte[] buf int off int len) 讀取輸入流的數(shù)據(jù)到buf字節(jié)數(shù)組中 ●GZIPOutputStream對象定義結(jié)構(gòu) java util zip GZIPOutputStream靜態(tài)成員變量 protected CRC crc 用于說明采用的數(shù)據(jù)壓縮算法為CRC 構(gòu)造方法 GZIPOutputStream(OutputStream out) 采用默認(rèn)的緩沖區(qū)字節(jié)數(shù)創(chuàng)建輸出流對象 GZIPOutputStream(OutputStream out int size) 創(chuàng)建由整數(shù)類型變量size指定緩沖區(qū)字節(jié)數(shù)的輸出流對象 成員方法 void close() 關(guān)閉輸出流對象 void finish() 結(jié)束數(shù)據(jù)輸出 但不關(guān)閉輸出流對象 void write(byte[] buf int off int len) 將字節(jié)數(shù)組buf中的內(nèi)容壓縮輸出到輸出流對象中 創(chuàng)建GZIP壓縮格式文件實(shí)例經(jīng)過前面對JDK API中創(chuàng)建GZIP壓縮格式文件的相關(guān)對象的結(jié)構(gòu) 成員方法定義形式的說明 讀者一定會問如何應(yīng)用這些對象和對象中定義的成員方法呢?請讀者看下面的實(shí)例代碼 //ZipDemo javaimport java io *; import java util zip *; public class GZIPDemo { public static void main(String[] args) { if (args length != ) { System out println("Usage:java GZIPDemo SourceFile DestnFile" + args length); System exit( ); } try { int number; //打開需壓縮文件作為文件輸入流 FileInputStream fin = new FileInputStream(args[ ]); //建立壓縮文件輸出流FileOutputStream fout=new FileOutputStream(args[ ]); //建立GZIP壓縮輸出流 GZIPOutputStream gzout=new GZIPOutputStream(fout); //設(shè)定讀入緩沖區(qū)尺寸byte[] buf=new byte[ ]; while ((number = fin read(buf)) != ) gzout write(buf number); gzout close(); fout close(); fin close(); }catch(IOException e) { System out println(e); } } }上面的程序用于將命令行中指定的文件SourceFile進(jìn)行壓縮 創(chuàng)建GZIP格式的壓縮文件DestnFile 在該程序的實(shí)現(xiàn)代碼中 首先創(chuàng)建用于進(jìn)行文件輸入和輸出的FileInputStream和FileOutputStream對象 并以FileOutputStream對象實(shí)例為參數(shù)創(chuàng)建GZIPOutputStream對象實(shí)例 從而為創(chuàng)建GZIP格式壓縮文件建立數(shù)據(jù)流基礎(chǔ) 在隨后的代碼中 利用FileInputStream對象中定義的read方法 從源文件中讀取待壓縮文件的內(nèi)容 同時(shí)利用GZIPOutputStream對象中定義的write方法將壓縮后的數(shù)據(jù)寫出到輸出文件中 從而實(shí)現(xiàn)數(shù)據(jù)文件的GZIP格式壓縮處理 在Java中創(chuàng)建GZIP格式壓縮文件的方法很簡單 并且利用WinZip WinRAR等類型的壓縮管理軟件均能夠打開創(chuàng)建的GZIP格式的壓縮文件 那么 如何利用JDK API中定義的對象將被壓縮的文件解壓縮呢?請讀者看下一節(jié)的內(nèi)容 GZIP格式文件解壓縮實(shí)例下面的程序用于將利用JDK API中定義對象的成員方法 將GZIP格式壓縮文件進(jìn)行解壓縮 從而恢復(fù)壓縮原始文件 //UnGZIPDemo javaimport java io *; import java util zip *; public class UnGZIPDemo { public static void main(String[] args) { if (args length != ) { System out println("Usage:java UnGZIPDemo GZIPFile DestnFile"); System exit( ); } try { int number;//建立GZIP壓縮文件輸入流 FileInputStream fin=new FileInputStream(args[ ]); //建立GZIP解壓工作流 GZIPInputStream gzin=new GZIPInputStream(fin); //建立解壓文件輸出流 FileOutputStream fout=new FileOutputStream(args[ ]); //設(shè)定讀入緩沖區(qū)尺寸byte[] buf=new byte[ ]; while ((nnumber=gzin read(buf buf length)) != ) fout write(buf nnumber); gzin close(); fout close(); fin close(); }catch(IOException e) { System out println(e); } } }在GZIP格式壓縮文件解壓縮程序代碼中 仍然首先創(chuàng)建FileInputStream和FileOutputStream對象 并基于創(chuàng)建的FileInputStream對象創(chuàng)建GZIPInputStream對象 在隨后的代碼中 調(diào)用GZIPInputStream對象中定義的read方法 在從壓縮文件中讀取數(shù)據(jù)內(nèi)容并進(jìn)行解壓縮處理后 將解除壓縮后的數(shù)據(jù)內(nèi)容利用文件輸出流對象進(jìn)行輸出 從而實(shí)現(xiàn)數(shù)據(jù)文件的解壓縮處理 小 lishixinzhi/Article/program/Java/hx/201311/27034

關(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("開始解壓縮"?+?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!");

}

}

僅供參考

如何使用JAVA代碼壓縮PDF文件

用java代碼壓縮應(yīng)用到程序了,代碼一般是比較復(fù)雜的,對pdf文件的mate標(biāo)簽優(yōu)化,這類標(biāo)簽包括三類,pdf文件不是網(wǎng)頁就是個(gè)文件,何況我們可以用pdf壓縮工具壓縮,下面有個(gè)解決方法,樓主可以做參照。

1:點(diǎn)擊打開工具,打開主頁面上有三個(gè)功能進(jìn)行選擇,我們選擇pdf文件壓縮。

2:這這個(gè)頁面中我們選擇pdf文件在這里打開,點(diǎn)擊“添加文件”按鈕將文件添加進(jìn)來。

3:然后在頁面中點(diǎn)擊“開始壓縮”就可以開始壓縮文件了。

4:壓縮完成的文件頁面會顯示已經(jīng)完成。

如何用java代碼調(diào)用解壓工具去解壓.exe文件

再 windows下通過 cmd命令執(zhí)行解壓縮沒問題,但是通過 java代碼去執(zhí)行不能解壓是為什么?我在開始運(yùn)行中輸入命令: cmd/ c rar. exe x- y d:\\ auto. rar d:\\----上面命令可以解壓成功,但是通過下面 java代碼不能實(shí)現(xiàn)解壓縮功能,請指點(diǎn)。主要代碼: java. lang. Runtime. getRuntime(). exec(" cmd/ c rar. exe x- y d:\\ auto. rar d:\\");

再 windows下通過 cmd命令執(zhí)行解壓縮沒問題,但是通過 java代碼去執(zhí)行不能解壓是為什么?我在開始運(yùn)行中輸入命令: cmd/ c rar. exe x- y d:\\ auto. rar d:\\----上面命令可以解壓成功,但是通過下面 java代碼不能實(shí)現(xiàn)解壓縮功能,請指點(diǎn)。主要代碼: java. lang. Runtime. getRuntime(). exec(" cmd/ c rar. exe x- y d:\\ auto. rar d:\\");

本文標(biāo)題:java壓縮軟件代碼 Java壓縮
文章地址:http://m.rwnh.cn/article2/doocgoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)定制開發(fā)、企業(yè)建站網(wǎng)站排名、App設(shè)計(jì)企業(yè)網(wǎng)站制作

廣告

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

外貿(mào)網(wǎng)站制作
定州市| 潞西市| 重庆市| 巴里| 樟树市| 盐边县| 永泰县| 衡东县| 嵊州市| 上思县| 叙永县| 罗源县| 清新县| 湘乡市| 铜川市| 扎兰屯市| 濮阳县| 和平区| 漯河市| 丹江口市| 江源县| 新田县| 洞口县| 来安县| 杂多县| 含山县| 淮北市| 含山县| 微博| 临清市| 香格里拉县| 松滋市| 贵溪市| 东台市| 泸定县| 连城县| 南溪县| 班戈县| 和林格尔县| 湟源县| 射洪县|