當前位置:才華齋>IT認證>ACCP>

Java的壓縮與解壓縮ZIP

ACCP 閱讀(3.09W)

壓縮是一種通過特定的算法來減小計算機檔案大小的機制。這種機制是一種很方便的.發明,尤其是對網路使用者,因為它可以減小檔案的位元組總數,使檔案能夠通過較慢的網際網路連線實現更快傳輸,此外還可以減少檔案的磁碟佔用空間。下面小編準備了關於Java的壓縮與解壓縮ZIP,提供給大家參考!

Java的壓縮與解壓縮ZIP

 壓縮的

import eredInputStream;

import eredOutputStream;

import ;

import InputStream;

import OutputStream;

import ntry;

import utputStream;

public class Zip {

static final int BUFFER = 2048;

public static void main(String argv[]) {

try {

BufferedInputStream origin = null;

FileOutputStream dest = new FileOutputStream("E:test");

ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(

dest));

byte data[] = new byte[BUFFER];

File f = new File("e:testa");

File files[] = Files();

for (int i = 0; i < th; i++) {

FileInputStream fi = new FileInputStream(files[i]);

origin = new BufferedInputStream(fi, BUFFER);

ZipEntry entry = new ZipEntry(files[i]ame());

extEntry(entry);

int count;

while ((count = (data, 0, BUFFER)) != -1) {

e(data, 0, count);

}

e();

}

e();

} catch (Exception e) {

tStackTrace();

}

}

}

 解壓縮的

import eredInputStream;

import eredOutputStream;

import ;

import OutputStream;

import eration;

import ntry;

import ile;

public class UnZip {

static final int BUFFER = 2048;

public static void main(String argv[]) {

try {

String fileName = "E:test";

String filePath = "E:test";

ZipFile zipFile = new ZipFile(fileName);

Enumeration emu = ies();

int i=0;

while(oreElements()){

ZipEntry entry = (ZipEntry)Element();

//會把目錄作為一個file讀出一次,所以只建立目錄就可以,之下的檔案還會被迭代到。

if (rectory())

{

new File(filePath + ame())rs();

continue;

}

BufferedInputStream bis = new BufferedInputStream(nputStream(entry));

File file = new File(filePath + ame());

//加入這個的原因是zipfile讀取檔案是隨機讀取的,這就造成可能先讀取一個檔案

//而這個檔案所在的目錄還沒有出現過,所以要建出目錄來。

File parent = arentFile();

if(parent != null && (!ts())){

rs();

}

FileOutputStream fos = new FileOutputStream(file);

BufferedOutputStream bos = new BufferedOutputStream(fos,BUFFER);

int count;

byte data[] = new byte[BUFFER];

while ((count = (data, 0, BUFFER)) != -1)

{

e(data, 0, count);

}

h();

e();

e();

}

e();

} catch (Exception e) {

tStackTrace();

}

}

}