JAVA压缩处理工具源代码

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

packagecom.sophia.hr.modules.itgrpt.utils;importjava.io.BufferedInputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.InputStream;importjava.util.ArrayList;importjava.util.List;importjava.util.Map;importnet.street.common.util.GUID;importnet.street.common.util.PathUtils;importorg.apache.tools.zip.ZipEntry;importorg.apache.tools.zip.ZipOutputStream;/***zip工具类*@version1.0*@authorbrgui*/publicclassZipUtil{publicstaticfinalintBUFFER=1024;//缓存大小/***指定目录下压缩成zip文件*@parambaseDir*@paramfileName*@throwsException*/publicstaticvoidzipFile(StringbaseDir,StringfileName,MapString,Stringmap,StringparentId)throwsException{ListfileList=getSubFiles(newFile(baseDir));ZipOutputStreamzos=newZipOutputStream(newFileOutputStream(toLocalFN(fileName,map,parentId)));zos.setEncoding(gbk);ZipEntryze=null;byte[]buf=newbyte[BUFFER];intreadLen=0;for(inti=0;ifileList.size();i++){Filef=(File)fileList.get(i);ze=newZipEntry(fromLocalFN(getAbsFileName(baseDir,f),map));ze.setSize(f.length());ze.setTime(f.lastModified());zos.putNextEntry(ze);InputStreamis=newBufferedInputStream(newFileInputStream(f));while((readLen=is.read(buf,0,BUFFER))!=-1){zos.write(buf,0,readLen);}is.close();}zos.close();}/***给定根目录,返回另一个文件名的相对路径,用于zip文件中的路径*@parambaseDir*@paramrealFileName*@return*/privatestaticStringgetAbsFileName(StringbaseDir,FilerealFileName){Filereal=realFileName;Filebase=newFile(baseDir);Stringret=real.getName();while(true){real=real.getParentFile();if(real==null)break;if(real.equals(base))break;elseret=real.getName()+/+ret;}returnret;}/***获取当前目录下所有文件夹,文件*@parambaseDir*@return*/privatestaticListgetSubFiles(FilebaseDir){Listret=newArrayList();File[]tmp=baseDir.listFiles();for(inti=0;itmp.length;i++){if(tmp[i].isFile())ret.add(tmp[i]);if(tmp[i].isDirectory())ret.addAll(getSubFiles(tmp[i]));}returnret;}/***删除当前文件夹及子文件夹*@parampath*/publicstaticvoiddeleteDirFile(Stringpath){Filefile=newFile(path);if(file.isDirectory()){//如果是目录,先递归删除String[]list=file.list();for(inti=0;ilist.length;i++){deleteDirFile(PathUtils.toUnixPath(path+list[i]+\\));//先删除目录下的文件}}if(file.exists()){file.delete();}}/***册除文件*@paramfilesPath*/publicstaticvoiddeleteFile(Object[]filesPath,MapString,Stringmap,StringparentId){File[]files=newFile[filesPath.length];for(inti=0;ifilesPath.length;i++){files[i]=newFile(toLocalFN(filesPath[i].toString(),map,parentId));}for(Filef:files){if(f.exists()){f.delete();}}}publicstaticStringfromLocalFN(Stringfn,MapString,Stringmap){String[]strs=fn.split(/);StringBuilderbs=newStringBuilder();for(Stringstr:strs){if(str.endsWith(:)){bs.append(str).append(/);}else{Stringpath=;if(map.get(str)!=null){path=map.get(str);}else{path=str;}bs.append(path).append(/);}}bs.delete(bs.length()-1,bs.length());returnbs.toString();//returnjava.net.URLDecoder.decode(fn);}publicstaticStringtoLocalFN(Stringfn,MapString,Stringmap,StringparentId){String[]strs=fn.split(/);StringBuilderbs=newStringBuilder();inti=0;intj=100000;for(Stringstr:strs){i++;if(str.equals(parentId)){j=i;}if(str.endsWith(:)||i=j||str.indexOf(vm)!=-1){bs.append(str).append(/);}else{Stringpath=;if(map.get(str)!=null){path=map.get(str);}else{path=GUID.nextUUID();if(str.indexOf(.)!=-1){path=path+.+str.split(\\.)[1];}map.put(str,path);map.put(path,str);}bs.append(path).append(/);}}bs.delete(bs.length()-1,bs.length());returnbs.toString();//returnjava.net.URLEncoder.encode(fn);}}

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功