自己搞定了,gradle本身的貌似没找到方法 import java.util.zip.* task xxx { def zipName = 'aaa.zip' def fileName = 'aaa/bbb/1.txt' def zipIn = new File(zipName) def zip = new ZipFile(zipIn) def zipTemp = File.createTempFile('out', '.zip', new File('./')) zipTemp.deleteOnExit() def zos = new ZipOutputStream(new FileOutputStream(zipTemp)) for(e in zip.entries()) { def input = zip.getInputStream(e) if(!e.name.equalsIgnoreCase(fileName)) { zos.putNextEntry(e) zos << input.bytes } else { zos.putNextEntry(new ZipEntry(fileName)) def br = new BufferedReader(new InputStreamReader(input, 'UTF-8')) def sb = new StringBuffer() sb << br.text.replace('a', "bbb") zos << sb.toString().getBytes('UTF-8') } zos.closeEntry() } zos.close() zip.close() println zipIn.delete() zipTemp.renameTo(zipIn) }
自己搞定了,gradle本身的貌似没找到方法