我是靠谱客的博主 热心硬币,最近开发中收集的这篇文章主要介绍用Groovy实现解压一个压缩文件,并且找出以数字或者大写字母开头的.groovy文件...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

 

用Groovy实现解压一个压缩文件,并且找出解压后文件里面的以数字或者大写字母开头的.groovy文件

 

 

import java.util.regex.Pattern
import java.util.zip.ZipEntry
import java.util.zip.ZipFile

class ZipUtil {

	def static unZip(String path)throws IOException
	{
		def count = -1;
		def index = -1;
		def savepath = "";
		def flag = false;
		def file = null;
		def is = null;
		def fos = null;
		def bos = null;
		
		savepath = "ZIPFolder/";
		ZipFile zipFile = new ZipFile(path);
		Enumeration<?> entries = zipFile.entries();
			
		while(entries.hasMoreElements())
		{
			def buf = new byte[2048];
			ZipEntry entry = (ZipEntry)entries.nextElement();
			def filename = entry.getName();
			
			filename = savepath + filename;
			File file2=new File(filename.substring(0, filename.lastIndexOf("/")));
		
			if(!file2.exists()){
				file2.mkdirs();
			}
							
			if(!filename.endsWith("/")){
				
				file = new File(filename);
				file.createNewFile();
				is = zipFile.getInputStream(entry);
				fos = new FileOutputStream(file);
				bos = new BufferedOutputStream(fos, 2048);
				
				while((count = is.read(buf)) > -1)
				{
					bos.write(buf, 0, count );
				}
				
				bos.flush();
				
				fos.close();
				is.close();

			}
		}
			
		zipFile.close();
			
	}

	def static illegalList=[]
	
	static findIllegalGroovyFile(def filePath){
		
		
		def pattern = Pattern.compile('^([0-9]|[A-Z]).*\.groovy');
		
		def file=new File(filePath);
		
		def list=file.list()
		
		list.each {
			it ->
			def f=new File(filePath+it)
			if(f.exists()&&!f.isFile()){
				findIllegalGroovyFile(f.getPath()+"/")
			}
			else{
				
					def matcher = pattern.matcher(it);
					if(matcher.find()){
						
						illegalList << f.getPath()
					}
				
			}
			
		}
		
	}
	
	static main(args) {
	
		unZip("ZIPFolder/ZIP.zip")//解压文件
		findIllegalGroovyFile("ZIPFolder/ZIP/")//找出符合题目要求的文件
		illegalList.each{
			it ->
			println it
		}
	}

}

 文件内部结构:

 

最后输出结果:

ZIPFolderZIP777ClosureNum.groovy
ZIPFolderZIPClosureNum.groovy
ZIPFolderZIPLottery.groovy
ZIPFolderZIPNew folder1111Lottery.groovy
ZIPFolderZIPNew folderLottery.groovy
ZIPFolderZIPNew folderLotteryTest.groovy
ZIPFolderZIPNew folder (2)ClosureNum.groovy
ZIPFolderZIPNew folder (2)LotteryTest.groovy
ZIPFolderZIPNew folder (2)New folder11212LotteryTest.groovy
ZIPFolderZIPNew folder (2)New folder555rLottery.groovy
ZIPFolderZIPNew folder (2)New folderClosureNum.groovy
ZIPFolderZIPNew folder (2)New folderLottery.groovy
ZIPFolderZIPNew folder (2)New folderLotteryTest.groovy

 

 

转载于:https://my.oschina.net/mondchan/blog/73768

最后

以上就是热心硬币为你收集整理的用Groovy实现解压一个压缩文件,并且找出以数字或者大写字母开头的.groovy文件...的全部内容,希望文章能够帮你解决用Groovy实现解压一个压缩文件,并且找出以数字或者大写字母开头的.groovy文件...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部