壓縮的

import java
io
BufferedInputStream;

import java
io
BufferedOutputStream;

import java
io
File;

import java
io
FileInputStream;

import java
io
FileOutputStream;

import java
util
zip
ZipEntry;

import java
util
zip
ZipOutputStream;



public class Zip

{

static final int BUFFER =
;



public static void main(String argv[])

{


try

{

BufferedInputStream origin = null;

FileOutputStream dest = new FileOutputStream(
E:\\test\\myfiles
zip
);

ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(

dest));

byte data[] = new byte[BUFFER];

File f = new File(
e:\\test\\a\\
);

File files[] = f
listFiles();



for (int i =
; i < files
length; i++)

{

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

origin = new BufferedInputStream(fi
BUFFER);

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

out
putNextEntry(entry);

int count;


while ((count = origin
read(data
BUFFER)) !=
)

{

out
write(data
count);

}

origin
close();

}

out
close();


} catch (Exception e)

{

e
printStackTrace();

}

}

}

解壓縮的

import java
io
BufferedInputStream;

import java
io
BufferedOutputStream;

import java
io
File;

import java
io
FileOutputStream;

import java
util
Enumeration;

import java
util
zip
ZipEntry;

import java
util
zip
ZipFile;



public class UnZip

{

static final int BUFFER =
;



public static void main(String argv[])

{


try

{

String fileName =
E:\\test\\myfiles
zip
;

String filePath =
E:\\test\\
;

ZipFile zipFile = new ZipFile(fileName);

Enumeration emu = zipFile
entries();

int i=
;


while(emu
hasMoreElements())

{

ZipEntry entry = (ZipEntry)emu
nextElement();

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

if (entry
isDirectory())


{

new File(filePath + entry
getName())
mkdirs();

continue;

}

BufferedInputStream bis = new BufferedInputStream(zipFile
getInputStream(entry));

File file = new File(filePath + entry
getName());

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

//而這個文件所在的目錄還沒有出現過
所以要建出目錄來

File parent = file
getParentFile();


if(parent != null && (!parent
exists()))

{

parent
mkdirs();

}

FileOutputStream fos = new FileOutputStream(file);

BufferedOutputStream bos = new BufferedOutputStream(fos
BUFFER);

int count;

byte data[] = new byte[BUFFER];

while ((count = bis
read(data
BUFFER)) !=
)


{

bos
write(data
count);

}

bos
flush();

bos
close();

bis
close();

}

zipFile
close();


} catch (Exception e)

{

e
printStackTrace();

}

}

}
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19246.html