通过java压缩文件方式一共有三种,在这里,给大家介绍一下(主要讲解java.util.zip方式实现的这种)
这三种方式分别是:
1、jdk自带的包java.util.zip.ZipOutputStream
2、org.apache.tools.zip.ZipOutputStream
3、org.apache.tools.ant.taskdefs.Zip
其中主要讲解第一种的代码构成:
比如需要某个路径下多个文件压缩为一个zip文件
代码如下:
// 把excel压缩到一个zip文件
public static void excelToZip(Map tmap) throws
Exception {
String files
[] = new String[3];
for(int
i=0;i<3;i++){
files[i]=path+i+".xls";
}
zipFiles(files,path+i+".zip");
}
//压缩方法
public static boolean zipFiles(String[] files,
String zipfile) throws Exception {
boolean bf = true;
File ff = new
File(zipfile);
if (!ff.exists()) {
ff.createNewFile();
}
FileOutputStream out = new
FileOutputStream(zipfile);
ZipOutputStream zipOut = new
ZipOutputStream(out);
for (int i = 0; i <
files.length; i++) {
File f = new
File(files[i]);
if
(!f.exists()) {
bf
= false;
}
try {
FileInputStream
in = new FileInputStream(files[i]);
String
fileName = files[i].substring(files[i].lastIndexOf('\\') + 1,
files[i].length());
ZipEntry
entry = new ZipEntry(fileName);
zipOut.putNextEntry(entry);
int
nNumber = 0;
byte[]
buffer = new byte[512];
while
((nNumber = in.read(buffer)) != -1) {
zipOut.write(buffer,
0, nNumber);
}
in.close();
} catch
(IOException e) {
e.printStackTrace();
bf
= false;
}
}
zipOut.close();
out.close();
return bf;
}
// 测试主方法
public static void main(String
args []) throws Exception {
excelToZip();
}
加载中,请稍候......