1 //待压缩的文件目录 2 String sourceFile=sourceFilePath+"\\"+userName; 3 //存放压缩文件的目录 4 String zipFilePath = sourceFilePath; 5 //zip文件名字,不加zip 方法里面有 6 fileName=“****” 7 8 //直接粘贴 9 public Object fileZip(String sourceFilePath,String zipFilePath,String fileName){ 10 String flag = ""; 11 File sourceFile = new File(sourceFilePath); 12 FileInputStream fis = null; 13 BufferedInputStream bis = null; 14 FileOutputStream fos = null; 15 ZipOutputStream zos = null; 16 17 if(sourceFile.exists() == false){ 18 System.out.println("待压缩的文件目录:"+sourceFilePath+"不存在."); 19 }else{ 20 try { 21 File zipFile = new File(zipFilePath + "/" + fileName +".zip"); 22 if(zipFile.exists()){ 23 System.out.println(zipFilePath + "目录下存在名字为:" + fileName +".zip" +"打包文件."); 24 }else{ 25 File[] sourceFiles = sourceFile.listFiles(); 26 if(null == sourceFiles || sourceFiles.length<1){ 27 System.out.println("待压缩的文件目录:" + sourceFilePath + "里面不存在文件,无需压缩."); 28 }else{ 29 fos = new FileOutputStream(zipFile); 30 zos = new ZipOutputStream(new BufferedOutputStream(fos)); 31 byte[] bufs = new byte[1024*10]; 32 for(int i=0;i 33 //创建ZIP实体,并添加进压缩包 34 ZipEntry zipEntry = new ZipEntry(sourceFiles[i].getName()); 35 zos.putNextEntry(zipEntry); 36 //读取待压缩的文件并写进压缩包里 37 fis = new FileInputStream(sourceFiles[i]); 38 bis = new BufferedInputStream(fis, 1024*10); 39 int read = 0; 40 while((read=bis.read(bufs, 0, 1024*10)) != -1){ 41 zos.write(bufs,0,read); 42 } 43 } 44 flag = ""; 45 } 46 } 47 } catch (FileNotFoundException e) { 48 e.printStackTrace(); 49 throw new RuntimeException(e); 50 } catch (IOException e) { 51 e.printStackTrace(); 52 throw new RuntimeException(e); 53 } finally{ 54 //关闭流 55 try { 56 if(null != bis) bis.close(); 57 if(null != zos) zos.close(); 58 } catch (IOException e) { 59 e.printStackTrace(); 60 throw new RuntimeException(e); 61 } 62 } 63 } 64 return flag; 65 }