java压缩文件与删除文件的示例代码
压缩文件:toZip(StringsrcDir,OutputStreamout,booleanKeepDirStructure)
删除文件:deleteFolder(Filefolder)
/**
*压缩成ZIP方法1
*
*@paramsrcDir
*压缩文件夹路径
*@paramout
*压缩文件输出流
*@paramKeepDirStructure
*是否保留原来的目录结构,true:保留目录结构;
*false:所有文件跑到压缩包根目录下(注意:不保留目录结构可能会出现同名文件,会压缩失败)
*@throwsRuntimeException
*压缩失败会抛出运行时异常
*/
protectedvoidtoZip(StringsrcDir,OutputStreamout,
booleanKeepDirStructure)throwsRuntimeException{
longstart=System.currentTimeMillis();
ZipOutputStreamzos=null;
try{
zos=newZipOutputStream(out);
FilesourceFile=newFile(srcDir);
compress(sourceFile,zos,sourceFile.getName(),KeepDirStructure);
longend=System.currentTimeMillis();
System.out.println("压缩完成,耗时:"+(end-start)+"ms");
}catch(Exceptione){
thrownewRuntimeException("ziperrorfromZipUtils",e);
}finally{
if(zos!=null){
try{
zos.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}
/**
*递归压缩方法
*
*@paramsourceFile
*源文件
*@paramzos
*zip输出流
*@paramname
*压缩后的名称
*@paramKeepDirStructure
*是否保留原来的目录结构,true:保留目录结构;
*false:所有文件跑到压缩包根目录下(注意:不保留目录结构可能会出现同名文件,会压缩失败)
*@throwsException
*/
privatestaticvoidcompress(FilesourceFile,ZipOutputStreamzos,
Stringname,booleanKeepDirStructure)throwsException{
byte[]buf=newbyte[BUFFER_SIZE];
if(sourceFile.isFile()){
//向zip输出流中添加一个zip实体,构造器中name为zip实体的文件的名字
zos.putNextEntry(newZipEntry(name));
//copy文件到zip输出流中
intlen;
FileInputStreamin=newFileInputStream(sourceFile);
while((len=in.read(buf))!=-1){
zos.write(buf,0,len);
}
//Completetheentry
zos.closeEntry();
in.close();
}else{
File[]listFiles=sourceFile.listFiles();
if(listFiles==null||listFiles.length==0){
//需要保留原来的文件结构时,需要对空文件夹进行处理
if(KeepDirStructure){
//空文件夹的处理
zos.putNextEntry(newZipEntry(name+"/"));
//没有文件,不需要文件的copy
zos.closeEntry();
}
}else{
for(Filefile:listFiles){
//判断是否需要保留原来的文件结构
if(KeepDirStructure){
//注意:file.getName()前面需要带上父文件夹的名字加一斜杠,
//不然最后压缩包中就不能保留原来的文件结构,即:所有文件都跑到压缩包根目录下了
compress(file,zos,name+"/"+file.getName(),
KeepDirStructure);
}else{
compress(file,zos,file.getName(),KeepDirStructure);
}
}
}
}
}
/**
*删除文件夹
*
*@paramfolder
*/
protectedvoiddeleteFolder(Filefolder){
//待删除文件路径
Stringpath=this.getClass().getResource("/").getPath().replace(
"WEB-INF/classes/","postFile/");
if(folder.isDirectory()){
File[]files=folder.listFiles();
for(inti=0;i10){
returntrue;
}else{
returnfalse;
}
// returntrue;
}
/**
*获取文件最后的修改时间
*
*@paramfile
*@return
*/
protectedDategetfileDate(Filefile){
longmodifiedTime=file.lastModified();
Dated=newDate(modifiedTime);
returnd;
}
/**
*删除文件
*
*@paramfile
*/
protectedvoiddeleteFile(Filefile){
try{
if(file.isFile()){
//删除符合条件的文件
if(canDeleteFile(file)){
if(file.delete()){
System.out.println("文件"+file.getName()+"删除成功!");
}else{
System.out.println("文件"+file.getName()
+"删除失败!此文件可能正在被使用");
}
}else{
}
}else{
System.out.println("没有可以删除的文件了");
}
}catch(Exceptione){
System.out.println("删除文件失败========");
e.printStackTrace();
}
}
总结
到此这篇关于java压缩文件与删除文件的示例代码的文章就介绍到这了,更多相关java压缩文件与删除文件内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。