packagefile;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importorg.apache.tools.zip.ZipEntry;importorg.apache.tools.zip.ZipOutputStream;public classZip {public static voidmain(String[] args) {//文件所在路径
String path = "E:\\test";
File dir= newFile(path);if(!dir.isDirectory()) {
System.out.println(path+ "--路径不存在!");
}//所有文件
File[] files = newFile(path).listFiles();if(files == null || files.length < 1) {
System.out.println(path+ "--路径下无文件!");
}//压缩文件名
String zipname = "hello.zip";
File zipFile= new File(path + File.separator +zipname);if(zipFiles(files, zipFile) == 0) {
System.out.println("压缩文件ok!");
}
}public static intzipFiles(File[] files, File zipFile) {if(zipFile.exists()) {
System.out.println(zipFile+ "--压缩文件已存在!");return -1;
}
BufferedInputStream bis= null;
ZipOutputStream zos= null;try{
zos= new ZipOutputStream(new BufferedOutputStream(newFileOutputStream(zipFile)));byte[] bufs = new byte[1024*10];for(int i=0;i
ZipEntry zipEntry = newZipEntry(files[i].getName());
zos.putNextEntry(zipEntry);//乱码问题
zos.setEncoding("gbk");
bis= new BufferedInputStream(new FileInputStream(files[i]), 1024*10);int read = 0;while((read=bis.read(bufs, 0, 1024*10)) != -1){
zos.write(bufs,0,read);
}
}return 0;
}catch(IOException e) {
e.printStackTrace();
System.out.println("压缩文件过程BUG了!");return -1;
}finally{try{if (zos != null) {
zos.close();
}
}catch(Exception e) {
e.printStackTrace();
}try{if (bis != null) {
bis.close();
}
}catch(Exception e) {
e.printStackTrace();
}
}
}
}