壓縮的
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350581.gif)
import java
io
BufferedInputStream;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350581.gif)
import java
io
BufferedOutputStream;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350581.gif)
import java
io
File;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350581.gif)
import java
io
FileInputStream;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350581.gif)
import java
io
FileOutputStream;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350581.gif)
import java
util
zip
ZipEntry;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350581.gif)
import java
util
zip
ZipOutputStream;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350581.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350598.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350527.gif)
public class Zip
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350584.gif)
{
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
static final int BUFFER =
;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350567.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350695.gif)
public static void main(String argv[])
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350584.gif)
{
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350567.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350695.gif)
try
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350584.gif)
{
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
BufferedInputStream origin = null;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
FileOutputStream dest = new FileOutputStream(
E:\\test\\myfiles
zip
);
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
dest));
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
byte data[] = new byte[BUFFER];
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
File f = new File(
e:\\test\\a\\
);
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
File files[] = f
listFiles();
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350567.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350695.gif)
for (int i =
; i < files
length; i++)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350584.gif)
{
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
FileInputStream fi = new FileInputStream(files[i]);
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
origin = new BufferedInputStream(fi
BUFFER);
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
ZipEntry entry = new ZipEntry(files[i]
getName());
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
out
putNextEntry(entry);
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
int count;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350567.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350695.gif)
while ((count = origin
read(data
BUFFER)) !=
)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350584.gif)
{
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
out
write(data
count);
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350634.gif)
}
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
origin
close();
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350634.gif)
}
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
out
close();
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350567.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350695.gif)
} catch (Exception e)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350584.gif)
{
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
e
printStackTrace();
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350634.gif)
}
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350634.gif)
}
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350620.gif)
}
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350581.gif)
解壓縮的
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350581.gif)
import java
io
BufferedInputStream;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350581.gif)
import java
io
BufferedOutputStream;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350581.gif)
import java
io
File;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350581.gif)
import java
io
FileOutputStream;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350581.gif)
import java
util
Enumeration;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350581.gif)
import java
util
zip
ZipEntry;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350581.gif)
import java
util
zip
ZipFile;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350581.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350598.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350527.gif)
public class UnZip
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350584.gif)
{
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
static final int BUFFER =
;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350567.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350695.gif)
public static void main(String argv[])
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350584.gif)
{
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350567.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350695.gif)
try
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350584.gif)
{
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
String fileName =
E:\\test\\myfiles
zip
;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
String filePath =
E:\\test\\
;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
ZipFile zipFile = new ZipFile(fileName);
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
Enumeration emu = zipFile
entries();
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
int i=
;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350567.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350695.gif)
while(emu
hasMoreElements())
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350584.gif)
{
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
ZipEntry entry = (ZipEntry)emu
nextElement();
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
//會把目錄作為一個file讀出一次
所以只建立目錄就可以
之下的文件還會被迭代到
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
if (entry
isDirectory())
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350567.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350584.gif)
{
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
new File(filePath + entry
getName())
mkdirs();
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
continue;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350634.gif)
}
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
BufferedInputStream bis = new BufferedInputStream(zipFile
getInputStream(entry));
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
File file = new File(filePath + entry
getName());
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
//加入這個的原因是zipfile讀取文件是隨機讀取的
這就造成可能先讀取一個文件
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
//而這個文件所在的目錄還沒有出現過
所以要建出目錄來
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
File parent = file
getParentFile();
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350567.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350695.gif)
if(parent != null && (!parent
exists()))
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350584.gif)
{
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
parent
mkdirs();
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350634.gif)
}
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
FileOutputStream fos = new FileOutputStream(file);
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
BufferedOutputStream bos = new BufferedOutputStream(fos
BUFFER);
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
int count;
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
byte data[] = new byte[BUFFER];
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
while ((count = bis
read(data
BUFFER)) !=
)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350567.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350584.gif)
{
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
bos
write(data
count);
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350634.gif)
}
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
bos
flush();
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
bos
close();
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
bis
close();
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350634.gif)
}
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
zipFile
close();
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350567.gif)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350695.gif)
} catch (Exception e)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350584.gif)
{
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350578.gif)
e
printStackTrace();
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350634.gif)
}
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350634.gif)
}
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111511350620.gif)
}
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19246.html