解压缩存档与 Groovy

2022-09-01 10:08:38

Groovy中是否有内置支持来处理Zip文件(时髦的方式)?

还是我必须使用Java的java.util.zip.ZipFile来处理Groovy中的Zip文件?


答案 1

也许Groovy没有对zip文件的“本机”支持,但是使用它们仍然非常微不足道。

我正在处理zip文件,以下是我正在使用的一些逻辑:

def zipFile = new java.util.zip.ZipFile(new File('some.zip'))

zipFile.entries().each {
   println zipFile.getInputStream(it).text
}

您可以使用以下方法添加其他逻辑:findAll

def zipFile = new java.util.zip.ZipFile(new File('some.zip'))

zipFile.entries().findAll { !it.directory }.each {
   println zipFile.getInputStream(it).text
}

答案 2

根据我的经验,最好的方法是使用Antbuilder:

def ant = new AntBuilder()   // create an antbuilder

ant.unzip(  src:"your-src.zip",
            dest:"your-dest-directory",
            overwrite:"false" )

这样你就不负责做所有复杂的事情 - 蚂蚁为你照顾它。显然,如果你需要更精细的东西,那么这是行不通的,但对于大多数“只是解压缩这个文件”的情况,这真的很有效。

要使用 antbuilder,只需在类路径中包含 ant.jar 和 ant-launcher.jar。


推荐