废话不多说了,给大家贴关键代码了,具体代码如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* @date 创建时间:2016年9月25日 上午11:06:46
* @version 1.0
* @parameter
* @since 2016年9月25日 上午11:06:46
* @return
*/
public class unZipFiles {
//zip文件路径
String fileAddress = "D:\\test.zip" ;
//zip文件解压地址
String unZipAddress = "F:\\unZipFiles\\" ;
//去目录下寻找文件
File file = new File(fileAddress);
ZipFile zipFile = null ;
try {
zipFile = new ZipFile(file, "GBK" ); //设置编码格式
} catch (IOException exception) {
exception.printStackTrace();
System.out.println( "解压文件不存在!" );
}
Enumeration e = zipFile.getEntries();
while (e.hasMoreElements()) {
ZipEntry zipEntry = (ZipEntry)e.nextElement();
if (zipEntry.isDirectory()) {
String name = zipEntry.getName();
name = name.substring( 0 ,name.length()- 1 );
File f = new File(unZipAddress + name);
f.mkdirs();
} else {
File f = new File(unZipAddress + zipEntry.getName());
f.getParentFile().mkdirs();
f.createNewFile();
InputStream is = zipFile.getInputStream(zipEntry);
FileOutputStream fos = new FileOutputStream(f);
int length = 0 ;
byte [] b = new byte [ 1024 ];
while ((length=is.read(b, 0 , 1024 ))!=- 1 ) {
fos.write(b, 0 , length);
}
is.close();
fos.close();
}
}
if (zipFile != null ) {
zipFile.close();
}
file.deleteOnExit(); //解压完以后将压缩包删除
}
|
好了,代码到此结束,以上所述是小编给大家介绍的Java解压zip文件的关键代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://www.cnblogs.com/lhy2016/archive/2016/09/25/5905883.html