标签:style blog java color os io
package com.utils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.Adler32; import java.util.zip.CheckedOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.zte.ums.ems.rrucheck.output.OutputFilesFilter; public class ZipUtil { private Logger logger; public ZipUtil() { logger=LoggerFactory.getLogger(ZipUtil.class); } public ZipUtil(Logger logger) { this.logger=logger; } public String zipAndDelSourceFiles_OMMB(String dir){ String sourceNameRegex="(filename1|filename2)\\.csv"; String targetFileName="zipname.zip"; String zipFilePath = null; try { if (zip(dir,sourceNameRegex,targetFileName)) { zipFilePath=new File(dir,targetFileName).getCanonicalPath(); FilePathUtil.del(dir, sourceNameRegex); zipFilePath=new File(dir,targetFileName).getCanonicalPath(); } } catch (IOException e) { logger.error(e.getMessage()); } return zipFilePath; } public boolean zip(String sourceFilePath,String sourceNameRegex,String targetFileName) throws IOException{ File target=new File(sourceFilePath,targetFileName); File dir=target.getParentFile(); File[] sourceFiles=dir.listFiles(new OutputFilesFilter(sourceNameRegex)); return zip(sourceFiles,target); } public boolean zip(File[] sorceFiles,File targetZipFile){ boolean result = false; try { FileOutputStream target = new FileOutputStream(targetZipFile); CheckedOutputStream cos = new CheckedOutputStream(target, new Adler32()); ZipOutputStream zos = new ZipOutputStream(cos); BufferedOutputStream out = new BufferedOutputStream(zos); DataInputStream in = null; try { for (File sorceFile : sorceFiles) { zos.putNextEntry(new ZipEntry(sorceFile.getName())); int count; in = new DataInputStream(new BufferedInputStream( new FileInputStream(sorceFile))); while ((count = in.read()) != -1) { out.write(count); } out.flush(); in.close(); } } catch (IOException e) { logger.error(e.getMessage()); } finally { try { out.close(); } catch (IOException e) { logger.error(e.getMessage()); } } result = true; } catch (FileNotFoundException e) { logger.error(e.getMessage()); } return result; } }
标签:style blog java color os io
原文地址:http://www.cnblogs.com/softidea/p/3811558.html