packageutils;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.util.zip.ZipEntry;importjava.util.zip.ZipOutputStream;/*** 文件夹打压缩包
*@authorZYGisComputer*/
public final classFileTOZip {/*** 将存放在sourceFilePath目录下的源文件,打包成fileName名称的ZIP文件,并存放到zipFilePath。
*@paramsourceFilePath 待压缩的文件路径
*@paramzipFilePath 压缩后存放路径
*@paramfileName 压缩后文件的名称
*@returnflag*/
public static booleanfileToZip(String sourceFilePath, String zipFilePath,
String fileName) {boolean flag = false;
File sourceFile= newFile(sourceFilePath);
FileInputStream fis= null;
BufferedInputStream bis= null;
FileOutputStream fos= null;
ZipOutputStream zos= null;if (!sourceFile.exists()) {
System.out.println(">>>>>> 待压缩的文件目录:" + sourceFilePath + " 不存在. <<<<<
}else{try{
File zipFile= new File(zipFilePath + "/" + fileName + ".zip");if(zipFile.exists()) {
System.out.println(">>>>>> " + zipFilePath + " 目录下存在名字为:"
+ fileName + ".zip" + " 打包文件. <<<<<
}else{
File[] sourceFiles=sourceFile.listFiles();if (null == sourceFiles || sourceFiles.length < 1) {
System.out.println(">>>>>> 待压缩的文件目录:" +sourceFilePath+ " 里面不存在文件,无需压缩. <<<<<
}else{
fos= newFileOutputStream(zipFile);
zos= new ZipOutputStream(newBufferedOutputStream(fos));byte[] bufs = new byte[1024 * 10];for (int i = 0; i < sourceFiles.length; i++) {//创建ZIP实体,并添加进压缩包
ZipEntry zipEntry = newZipEntry(sourceFiles[i].getName());
zos.putNextEntry(zipEntry);//读取待压缩的文件并写进压缩包里
fis = newFileInputStream(sourceFiles[i]);
bis= new BufferedInputStream(fis, 1024 * 10);int read = 0;while ((read = bis.read(bufs, 0, 1024 * 10)) != -1) {
zos.write(bufs,0, read);
}
}
flag= true;
}
}
}catch(FileNotFoundException e) {
e.printStackTrace();throw newRuntimeException(e);
}catch(IOException e) {
e.printStackTrace();throw newRuntimeException(e);
}finally{//关闭流
try{if (null !=bis) {
bis.close();
}if (null !=zos) {
zos.close();
}
}catch(IOException e) {
e.printStackTrace();throw newRuntimeException(e);
}
}
}returnflag;
}/*** 将文件打包成ZIP压缩文件,main方法测试
*@paramargs*/
public static voidmain(String[] args) {
String sourceFilePath= "F:\\newPlatfrom\\交响乐团\\pdf";
String zipFilePath= "F:\\newPlatfrom\\交响乐团\\";
String fileName= "pdf";boolean flag =FileTOZip.fileToZip(sourceFilePath, zipFilePath,
fileName);if(flag) {
System.out.println(">>>>>> 文件打包成功. <<<<<
}else{
System.out.println(">>>>>> 文件打包失败. <<<<<
}
}
}